Linux Bugfixes/Milestone, Chat Tweaks

Server and all modules now build on Linux.

Server runs on Linux however there seems to be an issue with either the
libcurl I'm using or how I'm using it that causes it not to work,
therefore I can't log into the server when it's running on Linux.
Looking into this.

Had to make various changes/fixes to get the server running properly on
Linux:

1. Various bugfixes in the Linux network stack.  Server was panicking
and dying because epoll_wait was being interrupted (EINTR).  Interrupts
on this call are now simply ignored.

2. Clients were not being marked as being registered with the epoll fd,
so nothing was being sent to them.

3. There was a deadlock in the client disconnect code.

4. The receive worker was setting the count of the wrong buffer to zero
after copying from one to the other.

5. The way dlsym works on Linux/POSIX has some important difference from
the way GetAddress works on Windows which made the module loading scheme
more difficult to implement.  For extensive notes on this see
src/mod_loader.cpp lines 30-72.  Special thanks to greymerk for coming
up with the workaround/solution to this show stopper.

6. The version of libmysqlclient I'm using on Linux doesn't support the
"utf8mb4" character set, so I had to change to the older, incomplete
"utf8" character set on Linux.

Made some miscellaneous updates to the way chat works so that messages
can be sent to a client by handle as well as by username.  This makes
sending replies/errors to people in response to command they issue much
more efficient and reliable.