Do not tell me I joined when I'm already in

Especially when I'm changing my nickname.

Closes #20
Refactor join/part handling
Don't put myself in my own list
Show "* X changed nick to Y" message

Closes #19
Show room and nick in /who output

Closes #18
Case-insensitive commands
Better error recovery
Fix message size for /help
Show leave messages again

Because when I leave I am in the room
Reference cheogram.com
Search bookmarks for short room name on /join

Closes #1
All PresenceError is a join error

We only send presence when joining, so any error is a failure to join.

Also report error text if there is any.

Closes #2
When only "not joined" message is delivered, be more helpful

As suggested in #3
Check if someone is in the room before saying the join

It seems GTalk repeatedly sends presence to the room, even when
already joined, which was causing many extra messages.

Closes #4
Better error recovery when connection goes down
Use BasicPrelude, reformat import list
Fix many warnings
Command to list bookmarked rooms