I looked at the patch. A few comments.
1. I'd leave ServiceStorage.showTheRing() there. It seems to be useful for some future utility.
2. Rename IPartitioner.getDefaultToken to getRandomToken, since it's not really the expected default behavior.
3. Why use elipsis instead of array in the following function?
public BootStrapper(EndPoint target, Token... token)
4. I'd leave SystemTable.main for future unit test.
5. This may be for future improvement. The new orderpreserving partitioner still has the problem that the cluster may not be balanced for arbitrary keys. One way to fix this is to let applications specify the initial token for each node. Then we need a way to initialize token from the conf file.
Other than those, the patch looks fine and ant test passes. However, since this is a relative major change, I think either Avinash or Prashant should take another look at it.