Tweaks to PartitionBalance and RebalancePlan

PartitionBalance
- calculate partition-stores per zone.
- This measure provides more context to evaluate the size of any plans to rebalance the cluster.

RebalancePlanCLI
- fix typo in verbose usage message
Initial hack at new rebalance scheduler.

Added RebalanceController.scheduler
- limits each node to participating in a single task as either a stealer or donor.
- randomizes the order in which tasks are attempted to be scheduled
- not a clean implementation, but enough to evaluate.
Tweak new rebalance scheduler

Randomized the order of rebalance tasks in each stealer's list. This
will avoid biasing the rebalance based on the order tasks were
generated.
Addressed review feedback on rebalance scheduler

RebalanceController
- Changed default parallelism to "infinite" since scheduler throttles parallelism
- Added TODOs for cleanup of scheduler
- Added javadoc to document scheduler and its methods
- Catch exceptions, log them, re-throw as VoldemmortRebalancingException

A ton of white space changes due to futzing with eclipse code formatter preferences. Sorry.
Refactor StoreRoutingPlan. Break Base from rest to expedite construction.
Adding BaseStoreRoutingPlan.
Making StoreRoutingPlan even lighter-weight
Update release_notes and build.properties for 1.4.2 release
Get rid of Integer reference comparison

The current code does Integer reference comparisons. When possible
int primitive type should be used.
Fast construction of BaseStoreRoutingPlan objects

Cleaned up code that was quickly hacked to ensure BaseStoreRoutingPlan
objects are "fast" to construct. In this clean up, managed to make
construction constant time (sub-microsecond on my
workstation). Basically, the struct that had been expensive to construct
already existed in the Cluster object and its reference could simply be
copied.

Cluster.java
- renamed "numberOfTags" to "numberOfPartitionIds"
- replaced map with array for partitoinIdToNode lookups

BaseStoreRoutingPlan
- TODOs and comments

ConsistentRoutingStrategy
- simply copy the partitionIdToNode lookup from cluster object

StoreRoutingPlan
- Pre-compute the mapping of partition Id to replicating list
- TODOs and comments

test/integration/voldemort/performance/StoreRoutingPlanPerf.java
- performance test of various cluster/storedef combos:
  - BaseStoreRoutingPlan (fast to construct!)
  - StoreRoutingPlan (slow to construct, but faster than it had been)
  - PartitionBalance (slow to construct, but faster than it had been)
Address minor code review feedback

- cleaned up TODOs and comments
- added TODO to incorporate Abhinays work on "metadata listener"
Added pending release notes.
Avoid potential null pointer deref of config
Change Repartioner to swap among nodes from all specified zones.

PartitionBalance
- Added comment about possible weakness of our utility method.

Repartitoiner.java
- Changed random shuffle implementation to swap among all nodes in
  specified zones.
- Left TODOs and 'dead code' implemntation of intra-zone swapping vs
  inter-zone swapping.
Add rebalance shuffle script
Fix location of example stores
Add cluster expansion script
Fix comments
Get rid of tee-ing the plan to a separate file

The rebalance planner writes the output to a file named
plan.out so this is not needed anymore.
Remove vold_home parameter from scripts

These scripts are being shipped as part of vold repo and so
no need for this extra parameter.