[IR] Reintroduce weird eval-scope unpeeling I removed in a9ac8142

* In a9ac8142, I removed the unpeeling hack that has been around
  for ever. I figured I could make a more deterministic unpeeling
  decision based on whether the eval is an instance/module eval
  or a binding eval. However, it turns out the unpeeling is based
  on the binding that is provided to the eval rather than the type
  of eval it is.

  For example, in the snippet below, the last eval that uses bb
  requires 3 layers of unpeeling to get at the containing static
  scope even though it is a not a module eval. bb came from a module
  eval (the "nil.instance_eval \"binding\"").

  ---------------
  def nil.test_binding
    binding
  end
  bb = eval("nil.instance_eval \"binding\"", nil.test_binding)
  eval("@@a", bb)
  ---------------

  In any case, fixing this more cleanly requires some digging into
  the existing runtime and figure out why there is an extra layer of
  static-scope wrapping for instance/module evals.

* Fixes 1 more MRI failure.