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
DataCleanup job should not run during rebalance

1) There is a check to not start Data Cleanup job during rebalance,
but after it is started, there is no periodic check.  This causes the
data cleanup to compete with rebalance.
2) Check every 10,000 entries scanned to make sure that there is no
rebalance in progress.
3) Added error condition around the data retention to make sure that if
it is set to 0 or lesser days the value is ignored and an error is
logged. Previously if it is set to 0, it will wipe out your entire data.
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
Log warning for GET ALL and DELETE

Log warnings for other than GET and PUT.
Merge pull request #210 from arunthirupathi/deleteGetVersion

Delete should use GetVersion instead of Get
Releasing Voldemort 1.8.13
Merge pull request #212 from arunthirupathi/CleanUpRebalance

DataCleanup job should not run during rebalance
Upgraded to Tehuti 0.5

Tehuti 0.5 includes a fix about Histograms not clearing their samples properly. Also added some trace logging code in StoreStats.
Releasing Voldemort 1.8.14
Fix bitrot and make it build again with newer toolchain
Fix the lib.private section of pkg-config file
Merge pull request #208 from readams/master

Fix bitrot and make it build again with newer toolchain
Slop for delete operations

Problems:
1) Exception handling of delete is very different at 4 places ( on
normal response, required failure, quorum failure) and after pipeline is
finished.
2) The exceptions are reported again and again ( They are not removed
from the map).
3) Some places ignore obsoleteVersionException, some others report it.
4) There is a zombie state abort, there is no way to reach this state.
5) Multiple slops could be sent, because of the issue 2. When the
pipeline is aborted, no slops could be sent.
6) Refactored QuotaLimitingStore test to add delete test cases
7) Combined the PUT and GET quotas into 2 quotas.

Solution:
Defined a common method, so that all 4 places call into the same method.
Only the condition for calling is different. Race conditions still
exist, after zone failure check but before pipeline finishes the
exception will go missing, slops will not happen, but the chances are
reduced.
Got rid of the state PerformDeletedHintHandoff as
QuotaExceededExceptions will not be reported as failures. Now doing it
in place.
Removed old parent delegating code in StoreStats which would cause double counting.

Conflicts:
	src/java/voldemort/store/stats/StoreStats.java
Merge branch 'master' of https://github.com/voldemort/voldemort