Remove Maintainer

Eliminated the maintainer concept -- i.e. the GFOA\Maintainer class.

The authenticator now performs logout actions when it is constructed.
GFOA\Person

Added the GFOA\Person class, which will encapsulate a single person tracked by the system.

Changed the GFOA\Authenticator class so that its GetUser method returns instances of the GFOA\Person class, rather than instances of \stdClass.
Authenticator Changes

Added a Check method to the GFOA\Authenticator class, which simply verifies that a user is logged in without retrieving the user-in-question.

Renamed the GFOA\Authenticator::GetUser method to Get for succinctness.
\GFOA\Controller::Execute Type Hint

Added an "array" type hint to the \GFOA\Controller::Execute method.
\GFOA\Person::Get

Person objects may be retrieved on ID through the Person::Get static method.
GFOA\Organization

Added the Organization class, which encapsulates an organization and provides methods for saving and retrieving organizations -- including retrieving all organizations, possibly sorted.
\GFOA\Person::GetOrganization

Added a GetOrganization method to the Person class, which allows the Organization object representing the organization to which that person belongs (if any) to be retrieved.
Authenticator Fix

When switching the Authenticator class over from using a dummy \stdClass object to \GFOA\Person objects to represent the logged in user, a piece of code was not updated.
Login Template Change

Changed the way in which the login form sets the form's action to the current page.
Authenticator No Throw

The \GFOA\Authenticator::Check and ::Get methods now take an optional boolean parameter which determines whether or not they throw, with throwing being the default behaviour.
Master Template Login Integration and Date/Time Display

Added the date/time display from the current GFOA BC home page to the upper left side of the master template (under the banner and top menu).

Added login integration (username, logout) to the upper right side of the master template (only when a user is logged in).
Person Display

The People controller can now display Person objects it retrieves from the database according to the following rules:

- If no arguments are passed to the controller, the currently logged in person will be displayed (if there is no such person, an exception is thrown, resulting in the login screen being displayed.  This behaviour may change to a bad request)
- If a numeric argument is passed to the controller, the person with that ID in the database is displayed
- If "create" is passed, a blank user is displayed

In all other cases a bad request is thrown.