Consumer back pressure improvements
Consumer back pressure improvements

* The async consumer will not attempt to add tasks when its executor is shutting down.
* The blocking consumer got a buffer size option that makes it create a bounded blocking queue instead of an unbounded. Good for when you have a big prefetch window because you want to keep lots of unacked messages, but not want to be swamped by incoming messages.

ruby-amqp/march_hare,noahhaon/march_hare,ruby-amqp/march_hare,noahhaon/march_hare