Enable gzip compression by default

If someone is using ActionDispatch::Static to serve assets and makes it past the `match?` then the file exists on disk and it will be served. This PR adds in logic that checks to see if the file being served is already compressed (via gzip) and on disk, if it is it will be served as long as the client can handle gzip encoding. If not, then a non gzip file will be served.

This additional logic slows down an individual asset request but should speed up the consumer experience as compressed files are served and production applications should be delivered with a CDN. This PR allows a CDN to cache a gzip file by setting the `Vary` header appropriately. In net this should speed up a production application that are using Rails as an origin for a CDN. Non-asset request speed is not affected in this PR.
Not sure lines of code is a good metric to be basing decisions on. Agreed on the data clump with `env`, and had the same conclusion about avoiding the object allocation. However, I think the additional expression of intent is a huge win. Dropping the `return false if` improves the style drastically in my opinion.