Moves getRelationships into the kernel API.

 o Still delegates to old implementation, but this is now done through the correct call paths.
 o Locking has been moved to the Kernel locking layer.
 o Obviates the need for the lock that could be passed to getNodeForProxy, which has been removed.
 o Deleted relationships are now filtered out in StateHandlingStatementOperations.
 o Use primitive iterator on the low levels for rels
 o Swaps lower level implementation to use ints instead of RelationshipType.

 Remaining:
 o getDegree still uses the old code paths, and should be swapped over in a follow-up commit.

Conflicts:
	community/kernel/src/main/java/org/neo4j/helpers/collection/IteratorUtil.java
	community/kernel/src/main/java/org/neo4j/kernel/impl/api/ConstraintEnforcingEntityOperations.java
	community/kernel/src/main/java/org/neo4j/kernel/impl/api/DefaultLegacyKernelOperations.java
	community/kernel/src/main/java/org/neo4j/kernel/impl/api/StateHandlingStatementOperations.java
	community/kernel/src/main/java/org/neo4j/kernel/impl/api/operations/EntityReadOperations.java
	community/kernel/src/main/java/org/neo4j/kernel/impl/api/store/StoreReadLayer.java
	community/kernel/src/main/java/org/neo4j/kernel/impl/core/NodeImpl.java
	community/kernel/src/main/java/org/neo4j/kernel/impl/core/RelationshipIterator.java
	community/kernel/src/test/java/org/neo4j/kernel/impl/api/integrationtest/RelationshipIT.java
	community/kernel/src/test/java/org/neo4j/kernel/impl/core/RelationshipIteratorIssuesTest.java
	community/kernel/src/test/java/org/neo4j/kernel/impl/core/TestRelationshipGrabSize.java

Kernel TX prepare and commit now get called outside synchronized blocks.
Move getDegree and getRelationshipTypes into the kernel.

 o Moves getDegree and getRelationshipTypes into the kernel implementation.
 o Introduces VersionedHashMap, a hashmap lacking certain multi-threading checks.
Merge pull request #1918 from jakewins/2.1-kerneldense

getRelationships, getDegree and getRelationshipTypes to kernel implemenation.