Moving the RabbitMQ firehose and friends to an extension.

This pull request creates a RabbitMQ extension in accordance with the way that the Kafka implementation was done.

It also adds a very quick'n'dirty implementation of trying to re-establish a connection if it fails (using the lyra library). This change is backwards compatable (config wise) but probably doesn't really work all that well, it will re-establish a connection but it won't re-declare all queue and exchange bindings that are needed. A proper lyra implemenation is the subject of another pull request.