(- re meta) Updating which Testling-CI browsers we test against
(- re style meta) Aligning Cakefile requires
(- re meta) Consolidating directory-configuration in the Cakefile
(new meta) Adding a `cake html` task to generate documentation
(new meta) Adding `cake clean` and `cake --wait`
(- fix meta) Typo. Oops.
(- re style meta) As CoffeeScript goes ... slightly prettier. Barely. ¬_¬
(- new meta) Exposing Mocha's `--grep`.
(new meta) Adding a test.html to test client-side work locally

I'm acheiving this via Browserify, which is already being used by our Testling-CI tests; the exact
same process can be handled locally via the `cake compile:browser` task.
(- fix meta) Apparently, npm can't handle the spaces. (... fuckin' seriously!?)
(- new docs meta) Specifying which cake tasks each option applies to
(re meta) Abstracting out an open_wait_task
(new meta) Adding a Cake task to open the client-side tests
(new api) Providing a utility-function to execute code in a new JS context

`runInNewContext()` is implemented as widely as I could manage (although I haven't had time to
test it in every client implementation in question). At the very least, it works in most clients,
*and* server-side in Node.js.

Squashes: dfc23..47264, 87c48..074e5, cbf37..db6e3
(- meta fix) Adding a magic-comment to prevent bundling `vm` for the client

Since we're *implementing* `runInNewContext()` for the browser, I don't want Browserify to
needlessly bundle *its* implementation of such.
(new api) Implementing `subclass()` to faux-subclass `Function`

Eventually, I need to abstract this for other purposes ... but right now, all I need, is `Function`
subclasses. So that's all this supports.

On I.E.s, this uses `runInNewContext()`, and all of the caveats thereof thus apply here.
(- style fix) Coffeescriptizing.
(- fix client closes:#3) runInNewContext wasn't calling into the DOM API properly.

`Node#insertBefore()` requires a second argument, that being *which element* to insert the element
before in the parent's NodeList. Most browsers were lenient and assumed the second argument to be
`null` if none is passed (which *also* meant we were unintentionally appending the element to the
*end* of the node-list, which is exactly the opposite of what we wanted.)

This mostly affected FireFox, it seems; everybody else was more lenient on requring the second
argument.
(- meta new) Supporting a --browser argument in the Cakefile
(- tests incomplete) Until I can debug this (see #1), I'm skipping them so Testling's results are helpful.