Initial bits of basic.{consume,publish,cancel} and DefaultConsumer
Extract constant, bump waiting period to 3 seconds
Extract SingleQueueConsumer

DefaultConsumer's previous implementation cannot
be added to multiple queues because it carries
a consumer tag.

This functionality was pushed down to SingleQueueConsumer.
Cosmetics
More tests
More tests, refactor
Push Consumer#cancel() method down
Introduce Channel#basicAck