Added basic Tx awareness to the registry.
:rocket: Registry transactions! They work, bitches! :rocket:

The registry is now transaction aware. It will sea-lion itself into any
transaction it spots, and roll-back if it's aborted.

The registry *does not* support nested transactions, but it will
detect them and throw an error. It *does* support ambient transactions,
which is what we're using (inner transactions join into the outer ones).

This should make it harder to end up with corrupted states, where the
registry thinks something is installed/uninstalled, but our transaction
has rolled the changes back.

Includes tests like a boss.

Closes #266.
Merge pull request #268 from pjf/266_transactions

Registry transactions! They work, bitches!