Several non-functional improvements to the code base.
Reduce the explicit use of the config.db global by introducing two new helpers: - A new transaction() context manager which will commit the transaction on successful exit, otherwise it will abort the transaction - A new dbconnection decorator which calls the decorated method with the Storm store object as the first argument (after self). This can be used instead of config.db.store.
By reducing the explicit use of this global, we have a better chance of refactoring it away in the future. Still TODO: runner.py and lmtp.py.
Be explicit about the `store` attribute on the IDatabase interface.