Introduces snapshotting of cluster contexts.

o All context implementations now are able to create snapshots of themselves.
o Implementation does not use clone, to allow passing in service classes to the
  snapshot (services like logging should not be snapshotted).
o All context impl classes have been moved out from being inner classes to living
  in a common package under the multipaxos package.