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

Fix Javadocs

AMQP-453 Polishing - PR Comments

- Support customization of the deflating streams
- Support ordered lists of post processors

Revert to Simple Subclasses