fix bad pipe for no-gzip accepted

This should fix #46, which is caused by the client not accepting gzipped files but gzipping not explicitly being turned off in the options so there was a bad `pipe` chain which caused data to get to the request but because the falsely created gzip stream isn't piped anywhere it stalls on `highWaterMark`.

Also took the opportunity to clean up the initial file cache code.

Reviews would be appreciated before merging this!
to handle the case where we are caching and gzipping but the first request for a file comes from a client that can't handle gzipping so we serve it up raw, we still need the gzipped version for the cache for future requests from clients that can handle gzip.