refactored imvujstest.js to be an imvujs module

- split out into (poorly named) imvujsassert.js and imvujstest.js
- AssertionError is now its own type
imvujstest files moved to src/imvujstest/
moved assertion synonyms to assert.js
Refactoring, removing global state
factored out SyncRunner and Runner
AsyncRunner and asynctest.js

Initial stab at asynchronous tests in the browser, no protection against too-long tests or double-calling of continuations.