[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.
Removal of this null check changes `Transaction.close()` behaviour a bit. If tx was committed/rollbacked using `TxManager.commit()` or `TxManager.rollback()` directly then `Transaction.close()` will fail with `TransactionFailureException` caused by `IllegalStateException("Not in transaction")`. Previously `Transaction.close()` simply did nothing. Is this ok to make such a change?