Store client copy of user data; local chat append.

The server no longer sends a 'chat message' event back to the
socket which emitted the message. That client can handle displaying
their own message for themselves, and the server will just tell
the others.

This precipitated a need to have the user's data stored on the
client, and also therefore a need for the user's data to be
updated by the name change event. Rather than opting to perform
this locally as well, it seemed reasonable to keep the authority
on a user's name with the server.

In general, I don't like this change. It has more special cases
and could jump the gun on thinking a message has been successfully
sent when it hasn't. It also requires data to be distributed,
instead of the client remaining stupid and the server doing the
storage.

I may revert this at some point, but it was a suggestion in the
socket.io chat tutorial, so, it's in for now.