Working through abort logic for dtxns. Added new RemotePrepareCallback that will eventually replace the separate TransactionPrepareCallback and TransactionPrepareWrapperCallback stuff...
Cleaned up PartitionCountingCallback to make sure that we only decrement the counter once per partition. Fixed logic in PartitionCountingCallback.allCallbacksFinished(). We can now reliably call decrementCounter() whenever we need to without fear of invoking the abort or run callbacks
Replaced the two separate TransactionPrepareCallbacks with a separate callbacks for local txns and remote txns