Created a function to set a user's name

I also changed usernames to be a 50-len character array, rather than
doing a free/malloc for each change. The malloc/free method was over
complicating something that should be simple, and possibly introducing
memory issues.
Added an allocation buffer to the user struct

I'm working on character-mode vs line-mode for telnet and I'll need an
allocation buffer for character-mode (since I only get one character at
a time)
For some reason, telnet sends me data that causes a character/integer
overflow when changing modes

This is a temporary fix, taking advantage of the fact that an overflow
gives me a negative number
Moving the getuserbysock call out of the socket read

This is a future change. With buffer allocation I'll _always_ need to
the user