Shell: save history in home dir. Closes #1395.

Specifically, $PWD/.shell_history is now ~/.neo4j_shell_history.
Fixed critical Browser bugs for Internet Explorer

* Updated Angular.js to 1.2.4
* Updated Codemirror
* Fixed overflow bugs on SVG canvas
* Added upgrade splash for IE < 9

fix(browser): overflow hidden on svg elements make IE10 display visualisations better

chore(browser): update to Angular 1.2.3. Animations are still broken

fix(browser): use correct styling directive for legend. Fixes problem in IE10 where they didn't show

Fixes IE not expanding rendered frames to full height

Fix animating frame on enter

Fix for nested .animate() not being triggered

Fixes positioning of frame actions

Added upgrade splash for internet explorer < 9

Fixed drag n' drop for Angular 1.2

Remove console.log in FileUpload directive

Fix editor in IE by upgrading Codemirror

Fix multi-line mode

Focus editor the right way when clicking editor area

Fixed tooltip visibility

Put max height on label color legend

Fix animations

Fcous editor on load

Initialize cursor properly in IE

Fixed drawer animations

Fixed error bar animation

Fix problem when inspector content didn't load + update Angular to 1.2.4
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.
Add some acceptance tests of profiling OPTIONAL MATCH, MERGE and UNION queries
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
Update angular reference.
Edit files with Notepad if Desktop.edit fails

The previous code, with its clever use of rundll32 url.dll,FileProtocolHandler is not robust across various versions of Windows.
traversal for constant direction

Implementing a PathExpander ensuring that relationship direction will be constant along the path.
The first relationship determines the direction to follow for all subsequent steps.
Relates to http://stackoverflow.com/questions/20654988/directed-paths-in-neo4j
Sends booked instance payload for repropose after rejectPrepare

this will fix an issue where there were a null payload when reproposing an
instance.
applying codestyle
tidying up and fixing tests
tidying up and fixing tests
Switches to master role in a separate thread

just like the switching to slave. This is done because switching to master
used to happen in the same thread handling the state change, directly from
the state machines (via a state change listener). The state machines
framework is designed such that handling and processing of messages must
be instantaneous. No waiting or costly operations should occur as part of
handling a message, since such will block all other state machine message
handling from occuring.

With this change a switch operation will be scheduled and started in the
very near future, but executed by another thread so that the actual state
transition handling is quick.

The issue this fixes is that heart beats were blocked during a master
switch so that after a master switch was completed and the new master came
up there were immediately suspicions against it and some rather
unnecessary switching occuring as part of it.
added "node_labels" to root db discovery
Merge pull request #1740 from sarmbruster/constant_direction_expander

traversal for constant direction
Merge pull request #1741 from tinwelint/2.0-reject-prepare-fix

Fixes two clustering issues causing temporary or permanent absence of master
Merge pull request #1726 from jotomo/shell-history-to-home-dir

Shell: save history in home dir. Closes #1395.
Skips store scan at shutdown if no labels touched

If no labels were added or changed and no nodes received label updates
then skip doing a repopulation of indexes and label scan store at
shutdown.
Waits for db availability since state switching is async nowadays