Implement consumer recovery

Currently consumers are assumed to use Bunny::Queue instances or client-named
queues passed as strings. Otherwise there will be no way to recalculate queue
name in the consumer. However, this should cover 99% of cases in practice.