RebalanceController Scheduler + Unit Test
Add license info
Added 'details' option to KeyVersionFetcherCLI

The 'details' option results in the inclusion of the partition ID,
node ID, and host for each fetched key-version. This should help
relate specific changes in the key-versions fetched before and after
rebalance to specific steps in the rebalancing plan.
Sort versions displayed by KeyVersionFetcherCLI
Drop KeyDistributionGenerator and Entropy

The intended usage of KeyDistributionGenerator and Entropy has been replaced. The PartitionAnalysisCLI and PartitionBalance tools replace the 'skew' estimation functionality of these tools. The KeySampler and KeyVerionFetcher replace the verification functionality of the EntropyChecker.

The helper method KeyDistributionGenerator.getUniqueStoreDefinitionsWithCounts has moved to StoreDefinitionUtils.getUniqueStoreDefinitionsWithCounts.
Complete dropping KeyDistributionGenerator
Drop server-side rebalancing optimization, fix proxy put config

The RebalancePlan object now produces "optimized" plans. I.e., data is not moved to a server that already hosts that data. This means that server-side optimizations to not fetch data the server already has are not needed.

The voldemort config had a parameter to turn proxy puts on/off. Now that they are tested, they should always be on for the sake of making sure rebalances are abortable. Also, the proxy put default number of threads was one. It is now set in the same manner as nio selectors.

Sorry for all the unnecessary white space changes. I need to reset my eclipse settings.
Removed maxTries option from Rebalancing

maxTries was a hack to work around problems with the scheduling of
rebalancing tasks. The new scheduler (is supposed to) ensure that no
node is doing more than one rebalancing thing (stealing or donating) at
time. Therefore, not being able to schedule an asynchronous rebalancing
task (stealer-based) on a node is a big problem and should not be
retried.
Sundry clean up in voldemort/utils

UpdateClusterUtils
- added new utils class
- moved all cluster & node manipulation methods to this class. (E.g.,
  methods that tweak partition IDs on a node, and methods that copy
  all nodes in a cluster, etc.)

Cluster
- replaced implementation of .cloneCluster() with another helper
  method's implementation.

PartitionBalanceUtils
- new utils class
- moved all helper methods that analyze cluster/storedef to this class

RebalanceUtils
- many helpers moved out of here to more other, new util classes

ClusterUtils  & NodeUtils
- found new homes for all helper methods. Will drop these files in
  next commit.
Dropped ClusterUtils and NodeUtils
Add pointer to proxy-put-metadata-listener branch.
Use .cloneCluster instead of Mapper.read/.write.
Clean up RebalanceUtils and AdminClient

Moved a number of static methods that took an AdminClient argument
from RebalanctUtils to become members of
AdminClient.RebalancingOperations (invoked via
adminClient.rebalanceOps). Also moved createTempAdminClient to be a
static method of AdminClient.

Moved some of AdminClient.HelperOps into new inner class
AdminClient.ReplicaTypeOperations. Marked all of these to be
deprecated.

Marked a number of replicaType helper methods in RebalanceUtils as
deprecated and annotated with a TODO as well.
Fix bad rebase.