Add the ability to cancel a consumer out-of-band

Address #38, implement a method for cancelling the consumer without alterning the existing API as #39 does.

This implements ``Queue.stop_consuming()`` and ``Queue._consumer.cancel()``