Copy ctor and assignment of transactions are not allowed.
Roll back transactions if they go out of scope but was not committed.
Rename InternalDataStore to Internal::DataStore.