Test case for race with commit updating the cache.

When a transaction commits, it will update nodes in the (object) cache
to add relationships to them that were created by the transaction. It is
however possible that the node was not in cache when the transaction
started its commit process, but was put into the cache by another thread
reading the relationships of that node. If this other thread read the
relationships after the committing transaction had written them to the
store, but before it updated the cache, the reading thread would have
already read the relationships that the committing transaction is about
to add into the cache. If that happens, the committing transaction will
still add these relationships, but now they will be in the cache twice
for that node.
Fix for race with commit updating the cache.

Extends the range of the locks acquired while writing to the store, to a
greater region including the place where we update the cache. Also make
sure we acquire corresponding read locks when attempting to read
relationships into the cache for a node.

This should be deadlock free because reader threads only ever acquire
a lock for one node at a time, and release it immediately after updating
that node. And while the writer thread acquires multiple locks, we only
ever have one writer thread acquiring locks at any given time.
Merge pull request #2977 from thobe/2.0-cache-race-commit-and-read

[2.0] Fixes race between reading into cache and commit updating the cache
Solves shortest path end points when they are missing

This commit solves a problem with patterns where only one side
of a shortest path is bound, Neo4j failed to build an execution
plan.
Merge pull request #3001 from systay/fix-shortest-path-builder

[2.0] Solves shortest path end points when they are missing
Browser: escape server response to prevent XSS.

Fixes #2139
Java subprocesses that we launch must be headless.

This is necessary for running tests on the build agents. This only
affects 1.9 because that runs against Java 6 where JMX insists on
starting up AWT even when it doesn't need a GUI.
Java subprocesses that we launch must be headless.

This is necessary for running tests on the build agents. This only
affects 1.9 because that runs against Java 6 where JMX insists on
starting up AWT even when it doesn't need a GUI.
Merge pull request #3023 from benbc/1.9-headless

Java subprocesses that we launch must be headless.
Java subprocesses that we launch must be headless.
Fix svg preserveAspectRatio attribute value.

* It's case sensitive in some browsers.
Merge remote-tracking branch 'upstream/1.9-maint' into 2.0-maint

Conflicts:
	community/lucene-index/src/test/java/org/neo4j/index/impl/lucene/TestRecovery.java
	enterprise/ha/src/test/java/org/neo4j/ha/TestPullUpdatesApplied.java
Merge pull request #3034 from davidegrohmann/merge-1.9-into-2.0

Merge 1.9 into 2.0