Introduce pooling of KernelTransactions.
Reduces contention in ArrayQueueOutOfOrderSequence#get

by removing synchronized on the method and letting the member variable
containing the high id by volatile.
Merge pull request #3209 from jakewins/2.2-txpool

[2.2] Introduce pooling of KernelTransactions.
Merge pull request #3273 from tinwelint/2.2-reduce-ooos-contention

[2.2] Reduces contention in ArrayQueueOutOfOrderSequence#get
Merge pull request #3270 from pontusmelke/profiling-changes

[2.2] Change Rewriter to be a total function
[2.2] Remove iterator from itereateUntilConverged

Profiling indicates that a minor tweak in iterateUntilConverged leads to (minor) speed up of compiling.