Decompress middleware updates

- detect case-insensitive header
- encoding values are listed in the order they were applied
- remove processed encoding from header
- add Accept-Encoding if missing

The `Connection: close` detection is probably overkill, but technically the header is case-insensitive and may contain multiple values. Could probably get away with `datum[:response][:headers][key] =~ /close/i`. This will change a bit when the `:persistent` option is added. So if you'd rather use that, I can change it then.

Includes #316, #317, #318