Implement correct semantics for record end block instruction

* It shouldn't get registered with the top-level script scope in which
  the end-block is defined in since there can be multiple script
  scopes depending on requires. They should instead be registered
  with the runtime which already has code to handle this.

* This automatically fixes (a) ordering issues (b) exception handling
  to match MRI semantics.

* There are some other failures to work through, rip out existing code,
  and add JIT support.
Delete unused end-block related state and methods