remove convenience bind methods from exchange, reducing the confusion about
how queues are actually bound to an exchange (not the other way around)
organize which methods are related to which parts of the spec, try to figure
out what we're missing
refactor Message to be explicitly shared class, rather than passing
shared pointers around directly
Queue::messageReceived no longer passes the queue as a parameter (use sender() if you need it)
fixed qamqp manual test to send key before message