Internalized event triggers
Added support for registering external messages
Reorganized some of the code
Added Client.Disconnect() for disconnecting the user