Use transactional database API in Bramble
This branch converts the Bramble modules to use the new transactional database API.
A couple of convenience classes have been added to make it easier for transactions to return values rather than updating variables (which can't be done from inside a lambda).
The Briar modules will be converted in a separate MR.