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.
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.
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
Merge Read and Write Quota

Combined GET and GETALL to GET
Combined PUT and DELETE to PUT
It would be cleaner if we rename the new GET to READ and PUT to WRITE
But it might break the backward compatibility so leaving it like this
for now.
Made the read quota take all GET_ALL keys into account
Releasing Voldemort 1.8.15
bdb native backup fixups

1. add message for native backup status
2. add bdb env config param: bdb.recovery.force.checkpoint
QuotaException causes delete failure

1) When QuotaException is thrown by delete, it fails the delete instead
of Quorum to decide the failure.
2) Added unit test to cover some part of the delete test case.
Releasing Voldemort 1.8.16

Releasing voldemort 1.8.16