Fix message compression flag.

Fixes #20.

Pull request #8 introduced a bug where the flag indicating which compression
format was used wouldn't be correctly set in the outgoing message. Instead of
overriding the Value field (which would also be confusing for people trying to
use it after sending) we cache the compressed payload in a separate hidden
field, and don't change the compression flags.

Add some tests to ensure this doesn't happen again.

Bonus fix: error if we don't recognize the compression format.
Merge pull request #21 from Shopify/fix_compression_flag

Fix message compression flag.