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

Also did a tiny micro-optimization in the Utf8 class.
diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst
index a1dc3c1..4712ed8 100644
--- a/user_guide_src/source/changelog.rst
+++ b/user_guide_src/source/changelog.rst
@@ -391,7 +391,8 @@
 
    -  :doc:`URI Library <libraries/uri>` changes include:
 
-      -  Renamed method ``_filter_uri()`` to ``filter_uri()`` and removed the ``preg_quote()`` call from it.
+      -  Added conditional PCRE UTF-8 support to the "invalid URI characters" check and removed the ``preg_quote()`` call from it to allow more flexibility.
+      -  Renamed method ``_filter_uri()`` to ``filter_uri()``.
       -  Changed private methods to protected so that MY_URI can override them.
       -  Renamed internal method ``_parse_cli_args()`` to ``_parse_argv()``.
       -  Renamed internal method ``_detect_uri()`` to ``_parse_request_uri()``.