AMQP-453: Support Compression

JIRA: https://jira.spring.io/browse/AMQP-453

Add optional compression (gzip, zip) to the `RabbitTemplate` and
`SimpleMessageListenerContainer`.

- MessagePostProcessors
  -- support gzip, zip compression, decompression

- RabbitTemplate
  -- new properties `beforePublishPostProcessor`, `afterReceivePostProcessor`
  -- configure compression on send, decompression on receive

- Listener Container
  -- support decompression

- New Header
  -- `springAutoDecompress`, required for backards compatibility (so we don't decompress existing messages)

- Test cases
I'm getting a javadoc error related to the arg name change... I guess travis doesn't do the api docs.

```
/home/mpollack/projects/spring-amqp/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/listener/AbstractMessageListenerContainer.java:614: error: @param name not found
	 * @param message the received Rabbit Message
	          ^
/home/mpollack/projects/spring-amqp/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/listener/AbstractMessageListenerContainer.java:620: warning: no @param for messageIn
	protected void executeListener(Channel channel, Message messageIn) throws Throwable {
	               ^
/home/mpollack/projects/spring-amqp/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/listener/adapter/AbstractAdaptableMessageListener.java:304: error: @param name not found
	 * @param message the Rabbit message to send
	          ^
/home/mpollack/projects/spring-amqp/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/listener/adapter/AbstractAdaptableMessageListener.java:308: warning: no @param for messageIn
	protected void sendResponse(Channel channel, Address replyTo, Message messageIn) throws Exception {
	               ^
```