Don't choke on "users' that don't have an ident or host

Servers for example don't.
Handle the PART command
Let's make these actions actually useful
Handle the QUIT command
We really don't need to debug every action
Handle the NICK command
Let's not forget about the PART reason
Retry connection with a new nickname if the current one is in use
Update the bot's nickname if it's being changed
Handle the TOPIC command