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.
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
Added temp debugging for flaky shell test.
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.