xmpp bugfix: nick conflict rejoin didn't work.

xmpp.currentRoom is set only when the room is
successfully joined. However, we still tried
to rejoin xmpp.currentRoom (undefined) on a nick
conflict.

Instead, we now have xmpp.room.target (a la
xmpp.preferredNick) which is set to the room
we *want* to join.

Variables have been renamed for consistency.
Also, the room to join on connection has been
moved to config.settings to make it modifiable
(but isn't yet saved).
Trivial syntax fix for user-removal.
Update channel menu when joining a room.

The menu used to only change state when used
directly. It will now update itself
whenever a new room is joined.
Bugfix: Escape the room name when leaving room.

The local room name may contain characters
disallowed in JID node identifiers, and must be
escaped in any communication with the server.
xmpp.leaveRoom() now does this.
xmpp.presenceRoomNick() is now xmpp.presence(),
takes extra attributes in an optional third argument,
and returns the stanza instead of sending it.
Disable automatic reserved-nick check.

This slows down the connection and is nearly
always useless. A configuration option will
be added later on.
Add default /say command, escape with //.

We need a way to post messages with leading /
(other than /me), in chat; including commands
that are otherwise interpreted. This is now
done by escaping them with /say or with an
extra slash.

(This makes everything entered a command, and
thus prevents messages from being sent to the
server while disconnected.)