Added ability to track key size in StoreStats
Change store tracking for 95th and 99th improvement

1. Use a smaller range histogram with higher accuracy
2. Changed update window from 5 minutes to 2 minutes
3. Changed update method for q95th and q99th values
4. Changed value type of q95th and q99th from long to double
Adding prune job to fix versioned puts post rebalance
Adding getAndLock and putAndUnlock storage calls
-- Intended for the VersionedPutPruneJob
-- Enables custom read-modify-write logic
Adding releaseLock(handle) for error handling and cleanup
Add throttle option to repair job
Unit test for repair job
Add throttle option to versioned put prune job
Address review comments
Adding test for Prune job
Timestamp based resolving for UpdateEntries

* Refactored all the streaming write classes to reuse network IO code
* Tests for Timebased resolving
* Tests for getAndLock and putAndLock
* Fix broken MySQL repair job from previous changes
* Reimplemented multiVersionPut using getAndLock and putAndLock
Adding the missed file
Preventing DataCleanup Job from running during maintenance
Addressing code review comments.
Adding a RestClient testcase
Bunch of cleanup changes:
* Better shutdown of Rest server
* Fixed bug in Get, GetAll parsing in R2Store
* Added GetVersions in R2Store
* Modified key encoding to use encodeBase64URLSafeString
  instead of standard base64 encoding
* Additional tests for R2Store and RestClient
Modified RestServiceR2StoreTest to use Rest server port
Catching Bootstrap exception while starting CoordinatorService. This is done to ensure Coordinator comes up even without a valid cluster
Adding ability to inject any je.properties param into server
* Added cleanerFetchObsoleteSize=true as default
* Removed unused proactive migration param