Move createServer into a helper file
Simplify test commands
Reorganize tests for shorter files
Rename serveAsset tests for more meaning.

For some reason, this causes a test to fail, pointing to an issue with tests
leaking onto each other.
createServer should execute in correct scope.

It should respect "this" (as that's the test's context) and call its callback
using that scope.
Instead of adding timeout to a test, fake mtimes.

The setTimeout call was unpredictable (caused intermittent failures) and it
was generally gross. Instead, let's fake the file's previous modification
time back in the past to achieve the same results.