Fix for 3316: ! httpx: decode should remove Content-Encoding header from message

This fixes #316 by changing Decoder.decode to remove the Content-Encoding header.

I added extra round-trip unit tests to the DeflateSpec and GzipSpec but I also added some basic unit tests for the Encoder and Decoder abstract classes themselves.