Implement proper durable topic unsubscribe.  Also ensures that for a
durable subscriber we detach and not close when the MessageConsumer is
closed.  Tests will continue to work with ActiveMQ as it removes
subscriptions on the first reattach attempt and does not currently do a
remove on close.  Some of the AmqpResource code is a bit messy now and
needs to be refactored a bit after this change.