Bugfixes, front-ends, makefile fixes

Cleaned up the makefile and added some dependencies to some object files
I'd originally missed.

Fixed a very narrow case SIGSEGV bug in the connection purging
functionality.  If the connection handler was shut down with clients
connected, it was possible for the vectors the connection purge function
was iterating over to be the same, and therefore deleting form one
invalidated the iterator to the other, but the function did not
previously reflect this and therefore could perform reads with
undefined/dangerous behaviour.

Fixed a bug which occurred when a client connected while the last client
of a handler had just disconnected, and that handler was in the process
of shutting down, which would cause that client to be stuck in limbo,
with no handler launched to handle their connection.

I fixed this by separating the connection queuing and handler creation
functionality.  A "watcher" thread now observes the pending connection
queue and the list of connection handlers, and if there aren't enough
connection handlers for the pending connections at any time, it spawns
more, which obviates this race condition.

Split the test server front-end into an interactive front-end (which
will become a finished product) and a test front-end (which will be a
front-end used for testing/development).  Eventually there'll be a
daemon/service front-end as well.

Added an "OnInstall" event, which allows a front-end to hook
functionality into the server just as a dynamically-loaded module would.

Normalized module names.

Fixed a problem with keep alive/connection timeout log formatting.

Fixed a bug with the client inactivity timer not being started when the
Client object is created.

Rolled atomically enabling encryption and atomically setting a client's
state to authenticated into one (provides for consistent behaviour very
close to authentication time).

Made a slight change to the work-in-progress chat support module, to
change when it loads sub-modules so that main, server-level modules will
always be available when chat modules are loaded.

Added logging into the send/receive thread, connection purge function,
and new watcher thread.

Removed console logging from the server when in interactive mode, this
is now a front-end responsibility (which makes much more sense).