ArrayUtil::Coalesce Fix

ArrayUtil::Coalesce now simply returns an empty array when passed null, rather than an array containing null.
ArrayUtil::In Fix/Improvements

Improved/Fixed (depending on your understanding of "fixed") ArrayUtil::In's behaviour.

Previously ArrayUtil::In used the PHP built-in function in_array in the absence of a user-supplied comparison function.

However, when comparing strings, in_array -- even in strict mode -- will not find equivalent Unicode strings to be equal.

Accordingly, ArrayUtil::In is no longer implemented in terms of in_array -- user-supplied comparison function or not -- and uses String::Equals to compare strings.
StrictObject Change

Changed an error message.
InputObject

Implemented the InputObject class, which wraps an array which -- in turn -- wraps HTTP input -- such as query string or POST variables.

This object seamlessly performs string preprocessing on these values, returning null instead of the empty string, and trimming values before returning them.

Like StrictObject, by default attempting to get a non-existent property -- or one which is null under the object's understanding thereof (i.e. the empty string) -- throws, which makes validation extremely straightforward.
Event

Implemented a base class for events which provides useful/convenient/shared functionality.

Also implemented a special exception type to be thrown when a registration fails for reasons unrelated to the database.  This allows such errors to be easily picked out and turned into an appropriate response.

Some documentation is missing.
InputObject

The static members of the Request class are now mostly of type InputObject, reflecting the purpose of that class.
KeyValuePair

Added the KeyValuePair class, which allows pairs to be represented without resorting to kludge (i.e. misuse of arrays).