support serving pre-gzipped files

If the file being requested doesn't exist, and the user-agent accepts gzip content-encoding, this patch will make mongoose look for the file with a .gz extension. If it exists, that file is served instead of the original and adds a "Content-Encoding: gzip" header to the response.

The feature breaks if the user agent makes a range request to a gzipped file, and returns 501 in this case.