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