Tools depend on Node 0 to be available

Added a new override for getRemoteStoreDefList which takes no parameters
and identifies one of the nodes, for it to be used.

Fixed all the tools (not used in production code path but could be used
by SREs) code, which used NodeId 0 as default to use the new overload.

VoldemortMultiStoreBuildAndPushJob seems to have the issue, but not
sure, whether it is used in production, so just added the comment.
Delete should use GetVersion instead of Get

1) Currently Delete uses Get instead of GetVersion before doing delete.
This can cause the Get to count towards Quota and is also unnecessary
overhead when you want to delete things.
2) Now GetVersion is attempted and if multiple versions are encountered,
then a Get is done to do the read repair.
3) Put uses duplicated code, the code is consolidated. Made the methods
private. I think I should replace the GetVersion method with the new
method I wrote, but not sure what is the use case and saving that for a
later date.
Merge pull request #211 from arunthirupathi/node0Issue

Tools depend on Node 0 to be available
Polish up the Java Client example
Merge pull request #213 from zhongjiewu/better-example

Polish up the Java Client example
Migrate from stores.xml to STORES folder in all example configs
Merge pull request #214 from zhongjiewu/example-config-cleanup

Migrate from stores.xml to STORES folder in all example configs
Merge pull request #210 from arunthirupathi/deleteGetVersion

Delete should use GetVersion instead of Get