Fold trampolines into the context object

There could only be one active trampoline at a time.  So the information
from the trampoline can be folded into the context.  The continuation
is already present on the top of the continuation stack, so this really
means that we add a "current value" field to the context.

Because we no longer return the next trampoline from continuations,
we can drop the 'return' keyword in many places.

But that means we can't use the return value to mean 'stop the
interpreter'.  Instead, the interpreter state is held explicitly in the
context, and there is a 'pause' method on contexts to suspend execution.
This makes some bugs less likely, so it's a good thing in general.