-Fixed userManager, it assumed socket.get() and set() were sync.
They are async, and it now works accordingly.
-Changed onSystemMessage with onSystemGreeting, after deciding that
each different system message should be its own event rather than some
specialization of a system message.
-Added minimal username support. For now, default usernames get assigned
by the server and get displayed when sending messages.