Get merge-rabbitmq branch ready to merge with master.

All tests pass now.

I believe I've grokked the intent behind the design of the Connection/ConnectionContext/TransactionExecutor triad from the other backends, and I've rearranged the Rabbit stuff to match. This simplified things such that in_transaction() and supports_transaction() could be deleted. While in there, I noticed that, if we're blithely calling commit() all the time on master, there's no need to look before leaping for rollback() either, which throws a less serious log message than commit(), in the worst case.

This should be ready to merge into master. The main risk is that we could get more NOTICEs in the PG logs if we actually do roll back outside transactions.

I wouldn't mind a confirmation that those methods I removed from Connection classes because they weren't actually Connection-like methods (f9286ff) weren't there for some obscure good reason.

Cheers!