Fixed Listener handling of conditional GETs with Range headers

If a request had both a Range header and an If-None-Match, and
the Etag matched, the response status was incorrectly set to 206
instead of 304. (This was a bug in the CocoaHTTPServer submodule.)

I also fixed a bug with Range requests of gzip-encoded attachments:
the attachment has to be decoded otherwise the byte range applies to
the gzipped data, not the actual attachment content.
Fixes #317