HTTPRequest Fix

Fixed a bug -- using CURLOPT_GET rather than CURLOPT_HTTPGET, causing PHP errors -- in the HTTPRequest class.
HTTPRequest Comment Typo Fix

Fixed a typo in a comment in httprequest.php.
HTTPRequest DELETE Support

Added support for the DELETE HTTP verb to the HTTPRequest class.
HTTPRequest Maximum Header/Body Length

Added fields to the HTTPRequest class, and functionality to it internally, to support specifying a maximum size -- in bytes -- of both the header and body of the response.  If the remote server attempts to send more than the specified maximum, an exception is raised and the request is aborted at once.
HTTPRequest Fix

Fixed a bug which was causing an \Exception object supplied by the HTTPRequest object's internals to be ignored in favour of the less descriptive libcurl error (caused by the throwing of the \Exception object in one of the callbacks).
JSON Multi-Byte String Fix

In checking to see if input to the JSON::Decode function is simply the string "null" -- to avoid ambiguity in json_decode's return value -- it makes sense to use strtolower since the string "null" contains no non-ASCII characters.  However, it does not make sense to use the ASCII version of the trim function, since the input could very well be "null" surrounded by Unicode whitespace characters.  This has been corrected.
JSON Client Maximum Body/Header Size Support

Added support for the newly-added maximum_header_bytes and maximum_body_bytes fields of the HTTPRequest class to the JSONClient class.  The JSONClient uses a default value of 65536 (i.e. 64 kilobytes) for these values, and the user may adjust them by accessing the JSONClient's now-public request field (which contains the HTTPRequest object the JSONClient will use to send requests).
JSONClient Documentation

Added some missing documentation to the JSONClient class.
Base64

Added a Base64 class, which contains the static function Encoding and Decode, which wrap the PHP functions base64_encode and base64_decode, respectively.

In the case of Base64::Decode the wrapper forces strict behaviour, unlike base64_decode, which is not strict by default.  There's also a check to ensure the input base64 string does not contain whitespace -- which is invalid and in violation of the base64 spec (base64_decode happily accepts it, however, even in "strict" mode).
Crypto Unused Function Removal

Removed the unused, private function check_random from the Crypto class.
HTTP Namespace Creation

Moved all HTTP-related classes -- Redirect, HTTPRequest, HTTPResponse, HTTPStatus, and HTTPStatusInfo -- to the new \CivicInfoBC\HTTP namespace.

Refactored all points of use of these classes in evidence to point to the new names.
URL Handling Utilities

Added some utilities for dealing with URLs under the URL class:

The Escape function which -- in keeping with the theme of the HTML::Escape function -- takes an arbitrary number of arguments, escapes and concatenates all of them.

The GetQueryString function which converts an associative array into a query string.

The Combine function which combines two URL components.

Refactored several places in the code base to use functions from the URL class rather than rolling their own/using PHP built-in functions.
XML

Added an XML class, which is -- at this point -- basically a massive return code-to-exception wrapper for the DOMDocument::loadXML method.