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.
Removed the integration tests pertaining to the correct use of X-Forward-* when redirecting from URIs that don't end in slash to ones that do*.

This is because there is some subtle interaction between Jetty and Jersey that screws this up. We've been through the Jetty code trying to see where this happens, but it's high cost for low value. Therefore when you don't correctly specify (say) /db/mabage/ and instead specify /db/manage then you will likely get incorrect URIs in the 302 response. the solution is not to use the wrong URI.

* This is a dumb decision by Jetty/Jersey. It is clear that http://example.com/foo/ and http://example.com/foo are not the same URI. Meh.