Add support for double literals in exponent form
Merge pull request #1795 from cleishm/cypher-parser-additions

Add support for UTF-8 characters in Cypher Identifiers and Whitespace, and support for Doubles in exponent form
Merge pull request #1808 from jakewins/jmx-remove-deprecated

Moved API level usage of internal class GraphDatabaseAPI into internals.
Merge pull request #1805 from jakewins/statuscode-kernel

Moves status codes into kernel.
Use internal heirarchy for types

Replaces the scala-based heirarchy and introduces static vals for
all types, prefixed by CT (Cypher Type)

Reverses the directionality of the heirarchy: now treats Any as
the super type ("up" in the heirarchy). This aligns with the
definition in most other languages.

Renames iteratedType on AnyType to legacyIteratedType
(uses innerType on CollectionType)
Make SubGraphExporter always output numbers with English locale
Neo data source gets enlisted the first write operation

instead of as of recently changed: to enlist on first read OR write
operation in a transaction. The problem with that was that even pure read
transaction had to write log entries in both the txlog as well as the
logical log for the resource itself which both would cause unnecessary
performance and contention problem around those logs.

This is alleviated by introducing the ability to
create a transaction but without (in XA resource terms) starting it.
PersistenceManager gives access to a ResourceHolder instead of the
NeoStoreTransaction (previously known as WriteTransaction) directly so
that in order to access to NeoStoreTransaction from the holder a decision
has to be made whether it's for reading or writing. The first write operation
will enlist the neostore resource on the transaction where the resource
gets started and start log entries are written in the appropriate logs.

Before the state where the resource is enlisted on the transaction the
NeoStoreTransaction instance is still there and functional for read
operations. This has the benefits that no log entries in any log
has been written about its existence.

The ResourceHolder also pulls in some other things that previously also
had leaked into NeoStoreTransaction.
Added temp debugging for flaky shell test.
Initial work on listing rels for a node via kernel API.

 o Simply adds the relevant methods to the Statement API and
   introduces a temporary bridge implementation in LegacyKernelOperations.
 o Remaining: Use implementation in surface APIs
 o Remaining: Move relevant NodeImpl/NodeManager code into kernel.
Fixes profile problem for queries starting with OPTIONAL MATCH
Use TargetDirectory to run each test case in its own directory.

This test involves servers failing to startup due to timeout.
In some situations the server will fail to shutdown fully in these
situations, leaving file locks that block the next test case.

A full fix for this issue would involve changing the lifecycle of
NeoStoreXaDataSource so that it's subordinate components are managed
through LifeSupport, which would give better assurance of shutdown
on failure to start. However, a change of that cope is too large for a
maintenance release, and this is only really an issue in tests where we
run multiple failed servers in the same JVM.
Test and fix for failing to start transaction in MasterImpl.

(cherry picked from commit b453f98dba1e5bcb8e19d5f5f2efcc68eb09c75a)
Master generates and propagates an epoch

that slaves must use for all further communication with it, or fail with
InvalidEpochException. This is to prevent the scenario where one part of a
transaction or commit communicates with one master, there's a master
switch where the new master instance uses the same host and port as the old one.
If a transaction would continue through such a scenario then unexpected
things and bad things might happen.

(cherry picked from commit b76f8e34f7184e1457e37f6da6137bfbde79c3e5)

Conflicts:
	community/lucene-index/src/main/java/org/neo4j/kernel/api/impl/index/LuceneDocumentStructure.java
	community/lucene-index/src/test/java/org/neo4j/kernel/api/impl/index/LuceneDocumentStructureTest.java
	enterprise/com/src/test/java/org/neo4j/com/MadeUpClient.java
	enterprise/ha/src/main/java/org/neo4j/kernel/ha/HaRequestType20.java
	enterprise/ha/src/main/java/org/neo4j/kernel/ha/HighlyAvailableGraphDatabase.java
	enterprise/ha/src/main/java/org/neo4j/kernel/ha/MasterClient20.java
	enterprise/ha/src/main/java/org/neo4j/kernel/ha/cluster/HighAvailabilityModeSwitcher.java
	enterprise/ha/src/main/java/org/neo4j/kernel/ha/com/RequestContextFactory.java
	enterprise/ha/src/main/java/org/neo4j/kernel/ha/com/master/MasterImpl.java
	enterprise/ha/src/main/java/org/neo4j/kernel/ha/com/master/MasterServer.java
	enterprise/ha/src/main/java/org/neo4j/kernel/ha/com/slave/MasterClient153.java
	enterprise/ha/src/main/java/org/neo4j/kernel/ha/com/slave/MasterClientResolver.java
	enterprise/ha/src/test/java/org/neo4j/kernel/ha/cluster/HighAvailabilityModeSwitcherTest.java
	enterprise/ha/src/test/java/org/neo4j/kernel/ha/com/master/MasterImplTest.java
	enterprise/ha/src/test/java/org/neo4j/kernel/ha/id/HaIdGeneratorFactoryTest.java
CoreAPI getRelationships now delegates to kernel API.

 o getRelationships in NodeProxy now uses the KernelAPI
 o getSingleRelationship in NodeProxy uses Kernel API
 o hasRelationships in NodeProxy uses the Kernel API
 o Remaining: Move NodeImpl & NodeManager code into kernel.
Merge pull request #1813 from tinwelint/1.9-backport-master-epoch

BACKPORT Master generates and propagates an epoch
Coerce generic case conditions to predicates

Fixes #1818
Store the compiled top-level parse rule rather than rebuild
Merge pull request #1821 from cleishm/cypher-parser-optimisation

Store the compiled top-level parse rule rather than rebuild
Merge pull request #1816 from systay/optional-profile

Fixes profile problem for queries starting with OPTIONAL MATCH
Merge pull request #1819 from cleishm/generic_case_predicate

Coerce generic case conditions to predicates