ISPN-263 Handle cluster partitions
* refactored: moved cache specific logic from ClusterTopologyManagerImpl into the ClusterCacheStatus
* This makes it easier to take rebalance related decition at cache level.
ISPN-263 Handle cluster partitions

* add logic to handle split brains
* when a split brain happens, the consistent hash of the cache freezes till the nodes that disapeared ressurect
* the cluster enters degraded mode, i.e. only servers data that hasn't been affected by the split brain
ISPN-263 Handle cluster partitions
- implemented functionality to determine multiple successive failures
ISPN-263 Handle cluster partitions

* don't allow for stale data in an resurrected member as this messes the consistency guarantees the partition handling offers
ISPN-263 Handle cluster partitions
 - enhanced the test suite with various nodes failures
ISPN-263 Handle cluster partitions
 - allow configuration through XML
ISPN-263 Handle cluster partitions

* fixed test suite
ISPN-263 Handle cluster partitions

    * added user documentation
ISPN-263 Handle cluster partitions

    * don't allow partition handling for replicated caches
ISPN-263 Handle cluster partitions

    * detail how the key ownership is determined
ISPN-263 Handle cluster partitions

    * fixed reviews comments
ISPN-263 Handle cluster partitions

* Fix remaining test failures
* Small documentation/javadoc fixes
* Move PartitionContext and PartitionHandlingStrategy to impl package.
* Fix configuration exception when partition handling is enabled in
  replicated mode.
* Use i18n messages for AvailabilityExceptions
* Rename CacheTopology.isDegradedMode back to isMissingData
* Don't allow partition to enter degraded mode if it's already unavailable.
ISPN-263 Handle cluster partitions

* More documentation fixes
* Rename isAllDataAvailable to isMissingData