Update the pretty graph cookbook to use labels

This fixes the output graph that was incorrect because of an isolation bug
where you could read a deleted node in an open transaction.
Make kernel dependencies provided for the Cypher 2.0 compiler, so it can run against kernel 2.1 in the future
Fixed lifecycle handling during slave switch. No longer causes deadlock with concurrent shutdown of database.
Added predicate to wait for all instances to be joined when using arbiters
Merge pull request #1904 from jakub-/pretty-graph-cookbook-labels

Update the pretty graph cookbook to use labels
Merge pull request #1905 from systay/kernel-provided

Make kernel dependencies provided for the Cypher 2.0 compiler
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.
Replace infix, postfix and prefix function expressions with unique AST objects
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.
Updated to correct version
Implementing split function

test refactoring
Merge pull request #1926 from davidegrohmann/2.0-splitfunction

Implementing split function
Merge pull request #1918 from jakewins/2.1-kerneldense

getRelationships, getDegree and getRelationshipTypes to kernel implemenation.
Merge pull request #1927 from cleishm/infix-ast-objects

Replace infix, postfix and prefix function expressions with unique AST objects
Added support for the LOAD CSV clause
Add LOAD CSV support to the prettifier
Add documentation for LOAD CSV
Recognise the LOAD CSV command in the shell
Add LOAD CSV highlighting to the browser
Remove a println from AggregationAcceptanceTest
Add opencsv to LICENSES and NOTICE