Fixes a JVM deadlock issue between committing and a reading thread

All information about the deadlock can be seen in
org.neo4j.kernel.impl.transaction.TestCacheUpdateDeadlock.

Fix is to move updating of the cache (NodeImpl/RelationshipImpl) to
outside the XaResourceManager monitor for the NeoStoreXaDataSource.

There's an underlying architectural problem here though, which is that a
lower level piece of code acquires a higher level monitor. And that is the
root cause of it.
Merge pull request #2002 from tinwelint/2.0-fix-deadlock

Fixes a JVM deadlock issue between committing and a reading thread