ISPN-263 Handle cluster partitions

https://issues.jboss.org/browse/ISPN-263

I added one more commit with some test fixes.
@wburns Re: reading partially owned keys: Degraded mode in general should now allow reading partially owned keys because of the scenario I described. We could define a different degraded mode that does allow reading of keys, but I'm not sure it's worth the added complexity.

Re: numOwners > numNodes/2 and the cluster splitting in 2: you are right that the current policy does not cover that. There is already a bug for this: https://issues.jboss.org/browse/ISPN-4574

@Sanne The only event that can heal a cluster in the current implementation is a JGroups view merge - see line 732.

For the other question, on a merge we install the CH from the available partition on all the members (because only available partitions can install new topologies, and we pick the topology with the highest id). That means the data in the degraded partition is deleted, and all members see the data from the available partition. I have created https://issues.jboss.org/browse/ISPN-4629 to confirm and document.

@tristantarrant Unavailable mode currently has a different meaning - it happens if we lose members gradually instead of a single split event. Making the first node to start unavailable because `numOwners = 2` might be a good policy for some users, but definitely not for everyone. Also, that definition wouldn't work for replicated caches, since replicated mode is basically distributed mode with `numOwners = +Inf`.