Add "/msg <nick>" when clicking on users (#5).

When clicking on a nickname anywhere, a /msg <nick>
is now prepended to the chat box.

This is only a temporary patch, and will be replaced by something cleaner
in jquery at some point. For now, the command is embedded in the markup
string, which requires some really awful quote-escaping code.
Merge pull request #43 from sylae/master

Fixed missing close-paren on image alt text in bbcode.
Fix #44: Make URL filter less greedy.

Do not filter URLs that are preceded by quote characters
(because these are likely part of literal markup), and do not
permit any other URI schemes but http, https, ftp, sftp and mailto.
Fix #45: Don't blink title on self-messages.
Fix #46: Make #inputField box sync with parent.

We need the textarea to be padded, but we still want its
total width to be 100%. CSS3 has a thing for that, which
is called box-sizing.

This is mainly a visual fix in chromium, where the focused
textarea gets a white outline. It's invisible in most other
browsers.
Some nicer command-validation logic.

(This also gets rid of the "waiting" error, which is unneeded
because the commands that are unavailable while waiting are also
unavailable while offline for the same reason.)
Fix #40: Turn nick spaces into underlines.

xmpp doesn't like spaces in nicks. The current way cadence did this
was crap, because the url-encoded %20s were visible in external clients.
Instead, these are now turned into underscores which work everywhere.

(Also, added a check to /nick that requires a non-empty nickname.)
Add a /version command.

This command links to the current version on github
(provided it exists in the @cburschka/cadence repository).

Also, the Makefile now always regenerates .sed.script,
in order to make config.js contain the latest version string.
Fix #48: Store cookie for a year.

The cadence settings should not be in a session cookie.
Fix #47: Don't trim left before executing input.

The general expectation is that commands are only interpreted
at the very start of the input, without any whitespace.
However, messages should still be trimmed before sending.
Fix #32: Fix custom styles in webkit.

The issue, as near as I can tell, is that webkit doesn't actually
apply an alt stylesheet when it is added to DOM, but requires the
disabled attribute to be jiggled.

Therefore, ui.setStyle now disables all stylesheets before enabling
one. Strictly speaking, it only needs to do this once on the initial
load, but it is trivial and probably more robust to do it every time.

This bug affected Google chrome 32.0.1700.77 and at least one
version of Safari, but not Chromium 31.0.1650.63.
Fix #25: Apply nick change to xmpp.nick.current

When a user is logged in from multiple resources as
the same roomnick, there is no 303 status when changing nicks.

(Furthermore, ejabberd does not send a 110 status on the
reflected presence; see issue 136 there.)

Therefore, work around this by detecting a nick change confirmation
based on the fact that the nick we wanted to change to has now entered
the room. The possibility that another user managed to change to that
nick at *just* the right time before we get a nick collision should be
basically negligible. (But hypothetically hilarious.)
Remove extra space on (whispers).

The (whispers), (whispers to *) prefix adds a superfluous space.
Remove %20-decoding from format.nick.

This is unnecessary, because spaces are now turned into underscores.
Fix #49: Remove duplicate colors.

(Also removed a few very close matches, based on euclidean
distance in 3D color space, and turned nF into (n+1)0, and
n1 into n0 for neatness.)
Adapt Makefile for out-of-git usage.

Problem 1: When git packages a release, it doesn't add any of the submodules.
Problem 2: When the Makefile runs git submodule --init, it depends on
           .git being present.

Solution:
Glue together an unholy construction out of bash, sed, awk and grep,
which parses the .gitmodules file and clones the respective repositories.
(Currently it assumes that all of them are checked out if and only if one
(buzz) is checked out.)

Also, when outside a repository, rely on a Makefile VERSION variable
to set the software version (which should be a tag on github).
When *in* git, obviously, use `git describe` to find the version.
Also, only rebuild config.js if the version has changed.
Let git describe fall back to SHA1.
Remove the @@ from the git command.
Fix a style-changing bug.

For some reason, jquery needs to disable stylesheets
with prop() instead of attr().

(However, enabling only works via removeAttr(), not removeProp().)
Rename resource from /strophe/ to /cadence/.