Output Cache: GZip Before Writing File and Save Mime-Type to Cache File.

Applies two changes to the format of cached files:

1. The output is gzipped before it is written to disk, thus reducing the processing overhead associated with gzipping the same content repeatedly on every single page request while also reducing disk space consumption.  For the 10% (or probably much less these days) of cases where GZip is not supported by the browser, the cached content is uncompressed before being outputted.  This improves efficiency for sites that rely on heavy caching (less processing, less disk i/o, less disk consumption).

2. Mime-type (if it has been set via the set_content_type() function) is also saved in the new cache file format.  There are many cases where a developer would want CodeIgniter to spit out some cached CSS, JSON, JavaScript, XML, etc., but until now this has not been possible!

Due to the change in file format for the cached files, developers will need to clear the cache folder when upgrading.  
This is just one of many ideas for improvements to the output library that I proposed here:
http://codeigniter.uservoice.com/forums/40508-codeigniter-reactor/suggestions/2530591-cache-output-library-improvements-overhaul-?tracking_code=57a1219af213e7d050ef5dd9064ca9b7

(PS--ignore those first two commits, those were for a different pull request and I don't know enough about git to get them out of this one.)