Add RabbitMessagingTemplate

This commit provides a Rabbit implementation of standard messaging interfaces available in the spring framework. These are `MessageSendingOperations` for sending standard Messages, `MessageReceivingOperations` to receive a protocol specific content and return the standard `Message` counter part and `MessageRequestReplyOperations` to send a message a wait for a reply.
I'd say you missed `Assert.notNull("RabbitTemplate must not be null");` here.