Bugs/queuedestroy

This PR fixes the issue demonstrated in @james-huston's unit test. 

If this fixes all the cases where we're trying to close a connection around when there are other operations pending, I'd rather not implement some other locking, though I have that ready to go if needed.

The issue in this case came from an error that we were swallowing. When you cancel a consumer – which happens during queue destruction – amqplib will invoke your listener function again with a single param of `null`. See the last line in this section for: http://www.squaremobius.net/amqp.node/doc/channel_api.html#toc_64

node-rabbit-wrap's internal handler didn't take this into account and was causing an error that triggered replay logic, which suggests that amqplib emits errors in `Channel#consume` listener functions in its connection error event. It also suggests that amqplib closed the connection after the internal handler errored, which I'm still trying to verify.

Anyway, this should fix that case. I need to write more tests to see if closing a connection allows completing actions to finish. 

**and we need debug logging so this sort of investigation is easier**