Use a mutable context object instead of cont, econt

Previously, we have a lots of references to cont and econt, even
though econt is usually pass through unchanged.  This is already
cumbersome, and extending this approach directly to support return
statements would be intolerable.

So instead of adding another continuation to the argument list of each
procedure, we thought it would be better to bite the bullet and have a
context object that holds the continuations, and makes explicit the
stack-like way that the continuations are used.
Add an abort handler stack, and implement 'return'

Aborts are used for any deviations from the normal continuation flow.
There are used here to implement exceptions and returns, and could be
used in the future to implement 'break' and 'catch' without adding
further stacks.