Close LogicalLog FileChannel references.

TestRecoveryLogTimingIssues fetches a file channel for each logical log
in the verification phase. These need to be closed. This manifested as
a failure to move the log file (rotate), when closing the db on Windows.
Moved PrimitiveIterator to util package, moved Kernel Exceptions to Kernel Exceptions package.
Merge pull request #1515 from thobe/2.0-fix-leaking-file-handle

Close LogicalLog FileChannel references.
Added StoreReadLayer abstraction.
Uses the SchemaCache in the CacheLayer in more places

so that all calls stemming from finding nodes by label and property key
hits the cache instead of going down to disk. This puts the schema index
performance on par with the legacy index access.
Prevents local slave lock acquisition waiting after granted on master

A slave in an HA cluster acquires locks by first acquiring it on its
master, and if granted go and acquire it locally. Given that the master is
the authorative instances w/ regards to locks in the cluster it is
expected that acquiring a lock that the master just granted should not
have to await any condition - it's expected to be free to acquire. However
that is apparently not the case since sometimes the slave comes back from
the master having just acquired it and it goes and blocks, awaiting the
lock to be free since some other transactions holds it presumably.

The problem described above in many cases results in such a lock being
stuck forever on the master, where the only way to release it would be to
restart that database.

This commit doesn't fix the issue that is the confusion that the master is
not the single authorative entity of locks. The fix here is to prevent a
local lock acquisition, after master acquired such, to go and wait for that
lock to be free locally. If that would happen then it will not wait, but
instead throw a DeadlockDetectedException (actually a subclass thereof)
containing diagnostics about which locks are present in the local lock
manager. These deadlock detected exceptions will walk and quack the same
way a "real" such deadlock and a normal retry of the transaction will put
things right again.

The root cause will have to be fixed, but having a few more deadlock
detected exceptions thrown to the client instead of leaving unreleasable
locks on the master behind is a massive improvement.

For reference, this issue caused many unexpected BlockingReadTimeoutExceptions
to be thrown, exceptions of which there should be much less of after this commit.
having GraphStoreFixture _not_ succeed it's transactions. This was changed recently, now changing it back as it seems to give us spurious test failures.
 That it improves the build and makes it less flaky is based on running FullCheckIntegrationTest a number of times on the actual build slave, which is the only place where this flakiness seems to manifest.
 That it makes matters no worse is proved by running the test locally too and seeing no flakes at all, like before.
Merge pull request #1514 from tinwelint/2.0-ha-lock-stuck-contraceptive

Prevents local slave lock acquisition waiting after granted on master
Cypher documentation improvements.
* Graph setup and preparation steps can now use Cypher, and the formatted queries are written to files which can get included.
* An extra graphviz graph is generated after preparation queries have been executed.
* Long pages have been divided into sections with a heading.
* Various fixes to examples.
Merge pull request #1493 from jakewins/storelayer

Added StoreReadLayer abstraction.
Clean up of packages, resolves many circular dependencies.

No functionality changes, only moving classes to correct packages.

o Move UpdateMode to the index component, resolves all but one remaining circular dependency in the new kernel code.
o Moved ThreadToStatementContextBridge into core along with the NodeManager and friends, removes 44 circular package dependencies.
o Moves kernel implementation classes into the impl package and away from the kernel API.
o Deletes a few unused classes.
Auto flushes the logger for every line added, instead of waiting for the buffer to fill before seeing that chunk of messages
Moved state-handling operations interfaces into kernel impl, since they are not part of the API.
Identify Neo4jDesktop in UDC.
Added test cases for merge with maps.

Should be able to assign a map of properties to a merged node ON CREATE,
and this map of properties should be able to contain the property we
merged on, even if a uniqueness constraint exists for that property.
Fix faulty import line.
Document shell schema command as a way to list indexes and constraints