Remove setTransactionManager() and setCommitRecordIndex() from
IBufferStrategy, AbstractBufferStrategy, WORMStrategy,
DiskOnlyStrategy, and RWStrategy.
Modify commitNow() to pass the AbstractJournal reference along.
Modify RWStrategy and RWStore to use the journal reference to access
the CommitRecordIndex and transaction manager as necessary during
Modify RWStore to incrementally evict blocks of deleted addressed to
be eventually released, e.g., by writing them onto a PSOutputStream
which is flushed during the commit protocol.
Take out the optimization which seeks to immediately free allocations
if the commit point from which they are reading has aged beyond the
history retention time. This will increase the decoupling of the
RWStore and the Journal and typical history periods will be long
enough that the optimization does not yield much benefit.
Note that System.currentTimeMillis() must not be used to obtain
anything which can be compared with a commit time. Always go to
ITransactionServer#nextTimestamp(). This allows us to change the
semantics of the clock.