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.
diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst
index 4712ed8..8618e5e 100644
--- a/user_guide_src/source/changelog.rst
+++ b/user_guide_src/source/changelog.rst
@@ -671,6 +671,7 @@
 -  Fixed an edge case (#555) - incorrect browser version was reported for Opera 10+ due to a non-standard user-agent string.
 -  Fixed a bug (#133) - :doc:`Text Helper <helpers/text_helper>` :func:`ascii_to_entities()` stripped the last character if it happens to be in the extended ASCII group.
 -  Fixed a bug (#2822) - ``fwrite()`` was used incorrectly throughout the whole framework, allowing incomplete writes when writing to a network stream and possibly a few other edge cases.
+-  Fixed a bug where :doc:`User Agent Library <libraries/user_agent>` methods ``accept_charset()`` and ``accept_lang()`` didn't properly parse HTTP headers that contain spaces.
 
 Version 2.1.4
 =============