move connection related stuff out of user constructor. Will make testing
easier in the future.
Don't allow a user to join a channel they're already in
gofmt