Fix #55: Strings for /who are broken.

1. usersInRoom gets used even if users is empty, because
   empty objects evaluate as true.
2. {users} is supposed to be {raw.users} due to formatting.
3. {room} in unknownRoom must be {name} due to formatting;
   it's not a room object.
Fix #57: Regular expressions not matching \n.

JavaScript regular expressions do not match DOT to \n.
There are no modifiers that change this.

This patch removes .* from all regular expressions and instead uses
replace() and substring() to get the leftover part of the string.
Fix #55: unknownRoomAuto string using bad formatter.

Don't use the room formatter on a variable that's just a string,
not a room object.
Increase default length limit on nicks to 32.
Fix #67: Ignore self-nick until room is joined.

As of f67d9b4, for #25, the presence callback looks for a self-presence
that matches nick.target but not nick.current in order to confirm
a successful nick change request.

There is another circumstance that causes this: Joining a room when
nick.current is not set, and the same user is already in the room
with the same nickname, and listed in the roster.

Therefore, the check from f67d9b4 should be moved into the
room == this.room.current block, which is only executed after the roster
is complete.
Rewrote the entire build process.

Fixes #8.
Fixes #63.
Fixes #64.
Fixes #69.

Oof. Total rewrite of the build process. Introduced a dependency
on Python (2.7+ or 3+ should work).
(Using a JS-based automater like gruntjs - or indeed another high-level
build system - seems overkill compared to using a regular Makefile, with
Python scripts for the complex parts.)

With this patch, JS and CSS resources are aggregated and minified by default.

./configure is now a Python script, taking advantage of advanced argument parsing.
Calling ./configure from another directory will create a Makefile there, which
allows building out of source.
make install will copy all resources to the specified target, optionally
placing everything but index.html into a separate destinationg for CDN use.

(An out-of-source build does not have all resources; some are installed directly
from the source directory itself without changes.)
Several fixes to the previous patch that actually
allow building out-of-source.
Set SRC_PATH to .; make `all` the top make target.
Fix the CSS/image relative path issue.
Disable compression when YUI is missing.
Updated the README for the new build process.
README.md formatting.
Use the more up-to-date Releases page of YUI.
Require a valid file for the logo.
Move Makefile to Makefile.in, add a distclean.

The clean command should now remove all generated files and dirs
from the build directory; the distclean will also purge Makefile
and .config.status.

For simplification, and to avoid the problem of running make before
configure, Makefile is now Makefile.in, and will only be copied by configure.

.gitignore got restructured a bit.
Make sure the default file is sourced.
Copy the global CSS files to the global/ subdirectory.
Remove --dirty: basically useless
Fix #51: Add a config.custom.js file.

This file is created but not overwritten by the installer.
Any settings changes that are not supported by the configure script
should be made there.
Actually made debug mode work.

Also added a make target that automatically fetches submodules.
This will not work in a file that isn't a git checkout, which is
something to fix later on.