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

Specifically, $PWD/.shell_history is now ~/.neo4j_shell_history.
Stable iterators for DiffSets.
Add tests around use of CopyOnWriterAfterIterationHashSet
Revert fix to MergeNodeAction now that the underlying cause has been fixed in kernel
fixing rest api such that nodes or relationships are indexed properly, where before dummy nodes were indexed in their place
changed rest api for create_or_fail semantics: if you request indexing a node under key foo and value bar, and that node or another node is already indexed under foo/ bar, then an error is returned
Merge pull request #1705 from jakewins/restapicreateorfail

fixing rest api such that nodes or relationships are indexed properly, w...
Work on Cypher comparision and ordering documentation.
Fixes bug around MERGE inside a FOREACH inside a FOREACH
Make it possible to profile queries with multiple NullPipes.
Timestamp in front for better grouping on thread dump
Merge pull request #1710 from chrisvest/profiling-multiple-null-pipes

Make it possible to profile queries with multiple NullPipes.
Allows MERGE to be used with no known points
Merge pull request #1707 from systay/merge-fixes

Fixes bugs around MERGE
Shell: add missing null check. Fixes #1711.
Uses a snapshot of the reference to Master instead of a proxy

so that the master cannot change all of a sudden in the middle of
operations. This fixes a problem where a service which was instantiated
for one specific master continued to run for a different master after a
sudden master switch. Specifically this resulted in misuse of id ranges,
potentially received from a different master than expected.
Merge pull request #1708 from tinwelint/2.0-cement-master

Uses a snapshot of the reference to Master instead of a proxy
Passes along phase1Timeout payload in all places
Merge pull request #1712 from jotomo/1711

Shell: add missing null check. Fixes #1711.
Fixes #1697

Fixes #1697 which is an issue where replacing a property on an entity
using batch inserter where the property would be bigger than the one it
overwrote so that it would need to go into a new property record. There
would be a NullPointerException due to removing that property block from
the property record two times.
Up the minimum heap size example to 16M