Fix #2799 by adding conditional PCRE UTF-8 support to CI_URI::filter_uri()

Also did a tiny micro-optimization in the Utf8 class.
URI Routing overhaul

 - Allow multiple levels of controller directories (supersedes PRs #390, #2439)
 - Add support for per-directory 'defaul_controller' and '404_override' (resolves issue #2611; supersedes PR #939)
 - Fixed a bug where default_controller was called instead of triggering 404 if the current route is inside a directory
 - Removed a few calls from CI_Router to CI_URI that made a necessity for otherwise internal CI_URI methods to be public:

    - Removed CI_URI::_fetch_uri_string() and moved its logic into CI_URI::__construct()
    - Removed CI_URI::_remove_url_suffix, CI_URI::_explode_segments() and moved their logic into CI_URI::_set_uri_string()
    - Removed CI_URI::_reindex_segments() altogether ( doesn't need further manipulation, while  is
      public anyway and can be properly (and more effectively) replaced on the spot)
Add some unit tests for CI_Input
Add a unit test for CI_Utf8::_is_ascii()
Disable HHVM mysqli and pgsql tests

mysqli and PostGre support isn't going to be in a good state for a
while.
Merge pull request #2823 from fredemmott/hhvm-travis

Disable HHVM mysqli and pgsql tests
Add CI_Model unit test
Unit tests: Full code coverage of Benchmark class
Minor changes related to CI_User_agent

Fixed a bug where both accept_charset() and accept_lang() improperly parsed headers
if they contained spaces between data separators (which is valid).

Also made is_referral() testable by replacing its static cache var with a class
property and added some more unit tests for the library as a whole.
Add autoloading library aliasing support (supersedes PR #2824)
Merge branch 'feature/uri_routing_overhaul' into 'develop'
Fix #2827
Fix #2825
Merge branch 'develop' into feature/output_compressed_cache