Large round of changes for getting HA dependencies in place for HA to work

TransactionHeaderInformation is now provided by a factory. That way HA
 can inject master and author information in transactions
CommitProcess now has Master and Slave versions, provided by a factory
CommitProcess is now provided by a factory which can switch
 between master and slave versions.
All remote transaction state handling is now limited to locks. All
 remote initialization and teardown requires no transactions to be
 running on the master side
SlaveFactory accepts the StoreId after creation, to allow for
 lifecycle shenanigans. Must be revisited at some point
UpdatePulling, tx pushing and commit use a ResponseUnpacker
Revisited NeoDS start and stop in SwitchToSlave - now only
 restarts are necessary, never recreactions
TxId = 0 is the magic "no data present in store" transaction

Removes and comments on a bunch of System.out usage