Expose consumers
More work on queue, binding and consumer recovery

To recover consumers we will have to make sure Bunny::Consumer instance
always have a reference to their respective queue object. The reason for
that is that when a server-named queue is recovered, consumer needs to
use the new name.