Remove finishing? method from transaction.

The finishing variable on the transaction object was a work-around for
the savepoint name, so after a rollback/commit the savepoint could be
released with the previous name.

related:
9296e6939bcc786149a07dac334267c4035b623a
60c88e64e26682a954f7c8cd6669d409ffffcc8b
Transactions refactoring

Add a transaction manager per connection, so it can controls the
connection responsibilities.

Delegate transaction methods to transaction_manager
savepoint_name should return nil for non-savepoint transactions

Also add test to assets the savepoint name
Merge pull request #16284 from arthurnn/transactions

Transactions refactoring
Extract the transaction class to a local variable