This version implements a general form of transactions, where the
modifications by each client are visible only to that client until the
transaction is committed. The client can also bail out easy to avoid
work if it can see that the transaction will not be committed.
