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 :-)
What happens with new data? e.g. what happens if a client tries to write K4 in C1? What happens if a client tries to write K4 in C2? What happens if both situations happen while split brain is present?