Added an AbstractClient that takes care of RabbitMQ boilerplate code.