Update another Javadoc on read ops in tx.
Moves status codes into kernel.

 o Each kernel exception now has an associated status code.
 o The transactional endpoint attempts to unwrap kernel exceptions and
   return their status codes. This resolves an outstanding issue with
   constraint violation error messages.
 o Remaining: Cypher exceptions should map to status codes as well,
   obviating the need to the complex exception mapper in transactional
   endpoint.
Merge pull request #1801 from jotomo/tx-all-over-the-place

Update another Javadoc on read ops in tx.
Moved API level usage of internal class GraphDatabaseAPI into internals.
Use a singleton parser for testing

This massively decreases time to run the test suite
Handle UTF-8 in identifiers and whitespace
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.
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.
Coerce generic case conditions to predicates

Fixes #1818
Store the compiled top-level parse rule rather than rebuild