Added the ability to auto-bootstrap on store definition changes
Updated AsyncMetadataVersionManagerTest for checking individual store definition updates. Added mechanism in VoldemortAdminTool to update individual store metadata version
Added support for Avro schema evolution in RO Stores
Added check in serializer
if writer's schema greater than reader raise an exception
- Refactored schema check method
- added fix to the verioned serializer to support writing of objects
  created using the old schema
Added comments to the new functions
Added testcase for schema evolution check
fixed try catch in versioned avro serializer
Adding a specific mini test that exercises ServerTestUtils.startVoldemortServer. This ~15 line program that simply starts some Voldemort servers using test utils can tickle two different intermittent failures:

(1) ObsoleteVersionException when loading cluster.xml

Testcase: startMultipleVoldemortServers took 0.385 sec
	Caused an ERROR
A successor version version()  to this version() exists for key cluster.xml
voldemort.versioning.ObsoleteVersionException: A successor version version()  to this version() exists for key cluster.xml

and

(2) A bind issue characterized as follows:

Testcase: startMultipleVoldemortServers took 2.066 sec
        Caused an ERROR
java.net.BindException: Address already in use
voldemort.VoldemortException: java.net.BindException: Address already in use
	at voldemort.server.niosocket.NioSocketService.startInner(NioSocketService.java:131)
	at voldemort.server.AbstractService.start(AbstractService.java:62)
	at voldemort.server.VoldemortServer.startInner(VoldemortServer.java:255)
	at voldemort.server.AbstractService.start(AbstractService.java:62)
	at voldemort.ServerTestUtils.startVoldemortServer(ServerTestUtils.java:666)
	at voldemort.utils.ServerTestUtilsTest.setUp(ServerTestUtilsTest.java:50)
Caused by: java.net.BindException: Address already in use
	at sun.nio.ch.Net.bind(Native Method)
	at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:126)
	at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:59)
	at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:52)
	at voldemort.server.niosocket.NioSocketService.startInner(NioSocketService.java:125)
Hardening test utils and tests to reduce the number of intermittent
BindException errors due to a TOCTOU issue with getLocalCluster.

The main improvement is the addition of
ServerTestUtils.startVoldemortCluster that wraps getLocalCluster and a
bunch of startVoldemortServer calls in a retry loop based on wether a
BindException occurs. This is suitable to ~75% of our test cases that
use getLocalCluster.

test/common/voldemort/ServerTestUtils.java
- Added startVoldemortCluster

test/unit/voldemort/utils/ServerTestUtilsTest.java
- Tests for ServerTestUtils to reproduce intermittent failures

src/java/voldemort/server/VoldemortServer.java
- TODO note about method that plays a role in another intermittent test failure invovling cluster.xml

Switched test to use startVoldemortCluster
  test/unit/voldemort/client/AdminServiceBasicTest.java
  test/unit/voldemort/client/rebalance/AdminRebalanceTest.java
  test/unit/voldemort/cluster/failuredetector/ServerStoreVerifierTest.java
  test/unit/voldemort/server/EndToEndTest.java
  test/unit/voldemort/server/socket/NioStatsJmxTest.java
  test/unit/voldemort/store/readonly/swapper/StoreSwapperTest.java
  test/unit/voldemort/store/rebalancing/RebootstrappingStoreTest.java
  test/unit/voldemort/versioning/ChainedInconsistencyResolverTest.java

Junit3 -> Junit 4
  test/unit/voldemort/client/AdminServiceBasicTest.java
  test/unit/voldemort/client/rebalance/AdminRebalanceTest.java
  test/unit/voldemort/server/gossip/GossiperTest.java
  test/unit/voldemort/server/socket/NioStatsJmxTest.java
  test/unit/voldemort/store/readonly/swapper/StoreSwapperTest.java
  test/unit/voldemort/versioning/ChainedInconsistencyResolverTest.java

Annotated with a TODO about the test still needing to be hardened
against TOCTOU issue with getLocalCluster:
  test/integration/voldemort/performance/RoutedStoreParallelismTest.java
  test/unit/voldemort/client/rebalance/RebalanceTest.java
  test/unit/voldemort/scheduled/StreamingSlopPusherTest.java
  test/unit/voldemort/server/gossip/GossiperTest.java
Additional hardening of tests to reduce the number of intermittent
BindException errors due to a TOCTOU issue with getLocalCluster.

test/integration/voldemort/performance/RoutedStoreParallelismTest.java
- switched to startVoldemortCluster

test/unit/voldemort/server/gossip/GossiperTest.java
- hand-coded test-specific startParallelVoldemortCluster. Not pretty. Not pretty at all. But, should retry in the face of such exceptions.

Switched TODO to comment about possible susceptability to BindExceptions:
- test/unit/voldemort/client/rebalance/RebalanceTest.java
- test/unit/voldemort/scheduled/StreamingSlopPusherTest.java
updated copyrights on touched files.
Fixed two small errors I introduced while fixing tests (or merging with master).
Cleaned up comments and TODOs from prior commits.
Added two tools for repeatedly running junit tests. Either specific tests, or all of junit. The benefit of these scripts is that the results from each run are archived toa  temp directory. This allows you to stress test big changes, find intermittent failures, and so on.