Use publisher/producer to delete test exchanges

This fixes the `COMMAND_INVALID - unimplemented method` test failures
introduced by disabling noWait in the previous commit.

They are caused by RabbitMQ refusing to allow an exchange to be deleted if a
channel is still Consume()ing from it. Ideally we'd Cancel() it, but doing
so requires the ConsumerTag which we've allowing the client library to
auto-generate for us - we only have access to it in delivered messages, of
which we might not have any.

So the simplest solution is to use the publisher/producer channel to delete
the exchange. I've added a comment here, because it wouldn't be immediately
obvious why.