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!
this whole section is for handling caching both gzipped and raw data, both streams are piped to [bl](https://github.com/rvagg/bl) which gives us a callback when it's collected all the data. We can then store the concatenated buffers from both in the cache. But we have to be careful of the following cases:

 * cache turned off or full
 * gzip turned off
 * client can't handle gzip