wvtest.js: bare minimum changes to make it work with MacOS jsc command.

This isn't pretty, and lacks things like nice-looking stack traces and line
number printouts.  But at least you can get pass/fail results.
Change enqueue()/runqueue() to avoid global variables.

Also, change enqueued functions to call done() callbacks instead of using
return values, so that async functions (like http requests) can be used as
steps.

Add some unit tests for enqueue/runqueue.
getUrlData() is now run as part of the queue.

This gets us one step closer to being able to download multiple URLs, as
well as making afterquery programmable in javascript (ie. by supplying your
own input grid to the pipeline) rather than always needing to be an iframe.
Add afterquery.exec(), which calculates a grid but doesn't render it.

This is like render() without the render() step.  We also add optional
'startdata' and 'done' parameters to both render() and exec().  If
startdata is provided, you don't need an url= as part of the query;
startdata is assumed to be the grid you want to use.  If done is provided,
we call it (with the latest grid) after the queue finishes running.

Now that we have exec(), it's much easier to unit test more of the
end-to-end transform and parsing code, so make a start at that.
Convert bool columns to numbers when charting.

Various chart types barf if they see a bool column, even though the data
inside is perfectly fine.
Merge branch 'master' of gh:apenwarr/afterquery

* 'master' of gh:apenwarr/afterquery:
  Add the avg() aggregate function.
  In tables, add URL formatting.
  Forgot some return types for some aggregate functions.
  Add count_nz (count nonzero) aggregation function.