Wrap QUnit

No reason to re-invent the wheel.
Complete initial implementation

What a mess...
Alias a reference to the global `config` object
Implement logging functionality
Add deepEqual tests
Correct the context of logging callbacks
Remove unused variables
Fix assertion messages

They still don't describe the original assertion type (so assertions
without explicit messages will have no message), but they're more useful
than the HTML rendered by QUnit.
Add support for multiple failures per test
Improve failure message reporting

Avoid reporting QUnit's generated HTML. When a custom message is not
explicitly specified, automatically generate one (in the case of
`assert.ok`) or simply prefer the empty string for now (in the case of
all other assertions).
Tmp
Use internal structure to track assertions

This limits reliance on QUnit internals.
Update Mocha
Add support for Node.js
Allow tests to be defined outside of a module
Begin building contraption for false positives
Ensure global `ok` function is also replaced
Assert failures from a Node.js script

This allows for programatic inference of expected failure count, which
in turn allows for reliably testing multiple failures per file.
Fix test timeout behavior
Express expected failures entirely in JavaScript

I'm awful at Make anyway.