Start work on Transaction support
Some small cleanups and changes to Provider API
Some initial Transaction tests
More work on Transaction support.