[IR] Changes to ZSuperInstr to eliminate indirect IRScope reference

* Because of define_method, args for ZSuperInstr in blocks cannot
  be determined by lexical inspection at IR build time. Thus far,
  the args for ZSuperInstr was detemined at runtime by fetching
  the IRScope of the nearest method scope by walking the dynamic
  scope chain. However, this meant that we need to keep around a
  reference to the IRScope at runtime.

* This patch eliminates this dependency by recording all possible
  arguments that zsuper could use and selecting the appropriate
  set of args based on how far up the dynamic scope chain we have
  to walk before hitting a method scope.

* This will work in the JIT as well by using a helper method to
  recover the right set of args from all possible args the zsuper
  references.

  Possible gotcha in JIT: scope-depths have to be appropriately
  patched up by JIT before compiling them. Alternatively, the
  IR builder would have to patch up variable refs to point to use
  the right depths and interpreter would have to patch up scope
  depths during dereferencing.

* TODO: Verify that ZSuperInstr fixes to persistence code is
  correct.