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.
Added custom error messages functionality for individual fields.
Fix 2 errors caused by recent commits
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
Changed $error_msg to $errors
Fixed a missed variable $errors in set_rules().
Removed extra space between closing parenthesis.
Updated change log message for form validation custrom errors.
Updated comment messages.
Added spaces between parameters and fixed the arrays to be more readable.
Merge branch 'develop' into feature/form_validation/custom_error_per_field
Added the missing "is" in the comment
Changed the rest of 'error_msg' to 'errors'
Added space after 'if' condition
Fixed coding styles in form_validation.rst
Fixed the comment and array alignment.
Merge pull request #2804 from abdmaster/feature/form_validation/custom_error_per_field

Added custom error messages functionality for individual fields.