Introduce pooling of KernelTransactions.
Resolve two race conditions relating to HA lock sessions

- Adds a check ensuring a slave commit has a running lock session when committing,
  or has explicitly opted out from having one.

- Moves lock session management into its own class, where timeouts and concurrent
  access can be tested in isolation.
Reduces contention in ArrayQueueOutOfOrderSequence#get

by removing synchronized on the method and letting the member variable
containing the high id by volatile.
Added a Neo4j logo to the startup messge for neo4j.sh and neo4j.bat