Refactor interpreter slightly in preparation for resume-at-any-point

Previously things were hardcoded to only allow a single entry point to
the interpreter (since that is how the unwinder determines if the frame
is an interpreter frame).

Instead of having astInterpretFunction be the interpreter frame, make
execute() the frame.  Have to make it a static class function so we can
take its address.