New transactionPeriodicallyCommit state

This provides a new option for periodically committing which will commit the user transaction. It is the client's responsibility to detect that the transaction is no longer open, and create a new one.