root stack, to be clear
Change to an eval loop and explicit stack management

This breaks garbage collection (it doesn't check the stack, and nulls
in vectors), and doesn't implement any special forms (e.g., lambda),
doesn't have progn, and doesn't work with vectors. Among other
problems.

But it does have the advantage of using no extra stack for tail calls.
Do a debug build as well
Allow for different kinds of continuation
Rewrite eval "loop" with gotos

I was having difficulty expressing the reduction rules in a loop; the
tricky one is that when a function has been applied, the next thing to
do is always to look at the continuation (stack frame). Otherwise,
expressions that result in lists might get evaluated.

The easiest way to get this right is to just always jump to the next
thing to do.
Better frame printing
Implement 'do' syntax