Add Basic HTTP authentication support to the XML-RPC library

(based on PR #1716)
Fix #2268 (manually implementing PR #2269)
Implement Loader method chaining

Requested in issue #2165
Supersedes PR #2319
Fix #2143

When trying to load rules from a configuration file, the Form validation library matched against
ruri_string() as opposed to 'controller/method' like described in the manual. Since ruri_string()
also makes sense, now both are being checked with ruri_string() having a higher precedence.

Supersedes PR #2224
Add ability for changing the original file path/name in CI_Zip::read_file()

Supersedes PR #884
Change Text helper default tag from <strong> to <mark>

Supersedes PR #1497
Add a more clear note about query builder caching (issue #2721)
Fix a few bugs in CI_Hook (based on PR #2762)
[ci skip] Add a changelog entry for PR #2800
Fix #148

CI_Input::_clean_input_data() assumed that all input data is URL-encoded while sanitizing it.
However, PHP already performs URL-decoding on it, so this is either redudant or overly
intrusive as it resulted in many, many reports of data containing '%' followed by 1 numeric
characters being essentially destroyed.

Supersedes PR #1229
[ci skip] Fix a wrong issue reference from the previous commit
Fix #346

When ['global_xss_filtering'] was turned on, the , ,  &
superglobals were automatically overwritten. This resulted in one of the following problems:

 - xss_clean() being called twice
 - Inability to retrieve the original (not filtered) value

XSS filtering is now only applied on demand by the Input class, and the default value for
the  parameter in CI_Input methods is changed to NULL. Unless a boolean value is
passed to them, whether XSS filtering is applied depends on the ['global_xss_filtering']
value.
Make newline standardization configurable

Added ['standardize_newlines']

Also altered the Session cookie driver, which experienced issues with this
feature due to it's HMAC verification failing after the Input class alters
newlines in non-encrypted session cookies.

Supersedes PR #2470
Deprecate the 'mysql', 'sqlite', 'mssql' and 'pdo/dblib' drivers

The 'mysql' PHP extension is notorious for it's problems and is deprecated as of PHP 5.5.

The other ones are dropped from PHP 5.3.
Update the Calendar Class
Added custom error messages functionality for individual fields.
Code Corrections for the Calendar Pull Request
Unnecessary rtrim and update docs for Calendar class
Remove preg_quote() call from CI_User_agent::_set_browser() and add another pattern for Opera

Input comes from a configuration file that is barely touched by anyone
and the default values only contain letters, so it is safe to not
quote them.

This enables us to add a more advanced pattern in config/user_agents.php
for Opera 10+, which ... quote:

  Opera/9.80 is hard coded at the beginning of the user agent string because of broken browser sniffing scripts which detect 'Opera/10' and above as Opera 1.

(reference: http://my.opera.com/community/openweb/idopera/)

Instead, latests versions of Opera append ' Version/<version number>'
to the end of the user agent string.

Fixes issue #555 (incorrect browser detection for Opera)
Add CI_User_agent::parse() to allow parsing a custom user-agent string

Based on PR #970