[2.0] TxManager used to commit/rollback transactions

Previously, if transaction was closed during database shutdown and TxManager was already turned off, call to close() failed trying to obtain current transaction and TxManager.rollback was not called. This left not released locks. Other threads were waiting for those locks and did not give database a chance to shutdown.
With this PR TxManager is used directly to close the transaction, so locks are released in finally block.
I think it's OK. As a user you shouldn't mix-n-match calls to different levels of the transaction handling anyway.