Refactors in preparation for exceptions support.

This adds in some pieces that will be needed for exceptions in the more
general case, then switches the existing next/last/redo exceptions over
to using the new approach. (Note, they need integrating so CONTROL,
which may run on the stack top and resume, will work out.)