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.