Merge pull request #118 from calref/master

Syntax error in emoticon aliases.
Fix #122: Disable compression when YUI is missing

The code introduced in 02252ca had a typo.

Also, add a warning that states compression is disabled.
Fix #119: unset connection on disconnect event.

If the xmpp.connection object is unset on calling xmpp.disconnect(),
rather than on an incoming disconnect event, then the connection object
will linger after a network or server error.
On the next reconnect, this will cause cadence to try to disconnect the
broken connection, and result in an error.
Fixes #111: Add keyboard shortcuts for BBcode.

This maps Ctrl+{B,I,S,U} to the appropriate BBCode.
Fixes #78. Ignore emoticons inside <code> tags.

This provides an easy way to prevent accidental emoticons
in source code, by wrapping the text in [code] tags.

It doesn't prevent the all-too-common 8) emoticon, but that
is another matter.
Fix #123: Alphabetize the user roster.

Instead of adding users to the end of the roster, they are now
inserted according to alphabetic (case-insensitive) order.
Fix #124: Completely Replace /msg in space-nicks.

When clicking on a user nick, the input field is to get
the prefix "/msg <nick>", which should replace any existing
"/msg <oldNick>" prefix.
If <oldNick> contains slash-escaped spaces, then these must be
included so the complete nick is replaced.
Fix #62: Emphasize the user's own roster entry.

The user's own nick is to be printed in bold in the user list.
This particularly helps if the user is connected with multiple
nicknames from different clients.
Fix #128: Proper message when banlist is empty.

Instead of printing "{users}" when the ban list is empty,
an appropriate message must be shown.
Add some missing semicolons.

It's a little unnerving that this code actually runs.
Fix #126: Alert sound on watched user entrance.

When a user enters whose nick matches an alert keyword, the "mention" sound
should be played instead of the "enter" sound. This allows e.g. keeping the
chat in the background while waiting for a specific user to enter, instead
of only being alerted when that user sends a message.
Fix #131: Autocomplete commands&nicks with tab.

Pressing tab will now look for a nickname or chat command
that contains the last typed word (separated by the last unescaped
space) and complete it if possible.

For multiple matches, only the longest common prefix is inserted.
Fix #129: Locally hide messages.

Adding the old delete icon back to the right of the message panel.
Clicking them will toggle the message content's visibility; a useful
(client-only) feature for disruptive messages or images.
Fix #133: Track current room in URL fragment.

* /join and /part will now update the URL fragment ("hash").
* Changing the URL fragment (eg. by clicking a link) triggers a
   /join or /part command.
* If a URL fragment is present on load, cadence will attempt to
  automatically join this room (even if autojoin is disabled).
Fix #74: Use HTML5 storage for settings.

If available, the client should use the localStorage object
instead of saving settings in a cookie.

Values are still serialized, so it works pretty similarly but
the size limit is 5MB instead of 4kB, and the value is no longer
(superfluously) transmitted in web requests.
Fix #134: Remove superfluous "nocontent" splash.

Even with Javascript disabled, this is never shown because the
CSS style that toggles off the splash is now loaded statically.
Fix #136: Align the [b] bbcode button.

The bold font on this button alters the line-height
and makes the button dip below the others. This should
be fixed by setting a common line-height.
Fix #135: Command list updated.

Added a few undocumented commands (/alias, /create, /part,
/say, /version) and administrative commands (/ban, /unban, /bans).
Cont. #135: Improve help sidebar look.

The code is printed in monospace instead of italics;
the code does not wrap, and is shortened to compensate.
Cont. #135: Documented /admin; shortened /ban.

(Also stripped an old console.log call from it.)