apply(): Comment.
lisptostring(): Better error checking.
Main loop is now in continuation-passing style.

This commit also simplifies the semantics of thunk and continuation
return values.  Both thunks and continuations always return another
thunk or nothing if there's nothing left to do.  Actually printing the
value is the job of a continuation.  (So no more "is this value a lisp
value that I need to print or a thunk that I need to call?")

And this commit opens the way for asynchronous evaluation with
setTimeout.