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
We may want this for another PR, but in order to expose various options here http://docs.oracle.com/javase/7/docs/api/java/util/zip/Deflater.html there should be a subclass of GZIPOutputStream that can call the appropriate constructor of Deflator.   When I did something like this a while ago the 'best speed' option (value 1) was the best trade off for cpu/network.