Implemented New rolling shard algorithm.  This should allow eventual shard consistency between all clients without the need for an external locking allocation system

Cleanup of code
Upgraded All external calls to use Hystrix.

Added shard compaction tests
Finished refactor of low level serialization to remove impedance mismatch of apis between read and write.
Updated OrderedMerge to use a faster implementation at runtime.  After initialization, it's an O(1) emit operation as long as our produces are fast enough.

Updated to fix comparator issues

Fixed tests

Changed algorithm.  Counters not decrementing as expected on shard balancing.
Fixes bug with multirow iterator and empty pages
Merge remote-tracking branch 'apache/two-dot-o' into USERGRID-188

Conflicts:
	stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/serialization/impl/shard/count/NodeShardApproximationImpl.java
	stack/corepersistence/graph/src/test/java/org/apache/usergrid/persistence/graph/serialization/impl/shard/NodeShardAllocationTest.java
	stack/corepersistence/graph/src/test/java/org/apache/usergrid/persistence/graph/serialization/impl/shard/NodeShardCacheTest.java
Updates with merge from master.
Fixes incorrect exception thrown during errors
Merge remote-tracking branch 'apache/two-dot-o' into USERGRID-188

Conflicts:
	stack/corepersistence/pom.xml
Fixed obscelete tests