Evaluator.js rewritten to trampolined CPS. Code is a mess, but
js tests pass and web client uses the changes to implement
a progress meter during program evaluation. Next step, cleaning
this up!