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.
o Resolved circular dependency between timeouts and state machines.
o Refactored ProtocolServerFactory to allow using it to assemble infrastructure for
  snapshotted state machines.
o Added equals methods to all stateful objects used during runtime by clustering.
o Refactored MultiPaxosContext to be explicit about which state is shared and required
  for which contexts.
Introduces initial work on cluster correctness proover.

o This exhausts all possible cluster delivery orders, generating
  a graph of all possible state transitions the cluster can make.
  Incorrect end states and bad loops can then be inferred from the
  graph and corrected.
Fixes #1099 configurable shell server host

Fixes #1099 adding a configuration option 'remote_shell_host' that
dictates which host to make the remote shell server available at in a
scenario where a server has more than one IP. Defaults to "localhost".
Rationalize example JVM parameters.

Add additional sensible example parameters:
  -XX:+PrintPromotionFailure
  -XX:+PrintFlagsFinal
  -XX:+PrintFlagsInitial

Explain that default heap size is dynamically calculated to avoid
confusion with example hard-coded sizes.

Remove legacy parameters that don't apply anymore, such as:
  wrapper.lockfile
  wrapper.java.app.mainclass
added "node_labels" to root db discovery
RRD using wrong scheduler thread fixed, closes #1746
Merge pull request #1744 from nigelsmall/master

Adding "node_labels" to root db discovery
Merge pull request #1721 from jakewins/morepoof

Cluster correctness prover
Shell: Print a warning when exiting with unterminated input
Merge pull request #1750 from jakewins/fix-rrd-shutdown

RRD using wrong scheduler thread fixed, closes #1746
Merge pull request #1731 from apcj/jvm-args

Rationalize example JVM parameters.
Merge pull request #1757 from chrisvest/shell-warn-unterminated

Shell: Print a warning when exiting with unterminated input
More realistic example heap size settings.

The example settings also follow the good practice of setting initial
and maximum size to the same value.
remove contention point with life.getStatus() in assertDatabaseIsRunning
Propagate shell port setting to configuration files of all distributions.
Docs: use GraphDatabaseSettings to configure DB.
Merge pull request #1767 from jotomo/gds-conf-docs

Docs: use GraphDatabaseSettings to configure DB.
Update JavaDoc.
Update copyright for 2014 (happy new year!)
Merge pull request #1775 from cleishm/happy-new-year

Update copyright for 2014 (happy new year!)