ISPN-263 Handle cluster partitions

https://issues.jboss.org/browse/ISPN-263
A good starting point is the documentation commit which describes the implemented functionality.
Most of the code is around playing with state transfer so dan's input is important :-)
I don't we need the requirement that k1, k2, and k3 exist in the cluster, in fact it would be better to say that the behaviour is the same regardless of whether the keys exist or not.