Zend\Db transaction api unification

- Added an abstract to avoid repetiting code between adapters.
- Fixed contracts (for example dockblock said @return self for fluent interface but method didn't actually return $this).
- Added more consistancy in the methods between adapters
- Added unit tests

This work is an introduction to another PR to come.