Manage bunny connections better

Changes include...

* Major refactor of how rabbit feed manages its Bunny connections. Previously, it maintained a pool of Bunny connections, now it will maintain a pool of Bunny channels, which is a lighter-weight approach.
* Improve how we recover when an operation fails due to network connectivity problems. Instead of closing and re-opening a connection when retrying failed operations, it only closes the connection if Bunny is unable to recover the connection on its own. Added a script that can be used to assist with connection recovery testing.
* Refactor of the features and steps to be more concise
* Correct Airbrake notification method to ensure errors are only raised when appropriate
* Provide message properties on publish, which allow you to view in more detail what types of messages are queued.

@pvdb @dawid-sklodowski @danisola @calo81 @nronas Could you please sign off?
I might be a bit lost here of course, as I don't know the project well.. But if there is a `connection_pool` down, shouldn't the connections being retrieved from it instead of creating here?. Or they are not related?