[IR] Extend WrappedIRClosure to include an explicit self operand

* This fix is required for proper inlining of scopes that contain
  blocks so that the self prior-to-inlining can be passed into
  the block after-inlining into another scope.

* With this fix, bench_method_dispatch.rb runs with -Xir.profile=true
  without crashing. Same for bench_fib_recursive, bench_red_black,
  shootout/meteor, shootout/mandelbrot, bench_richards,
  bench_neural_net, and bench_tictactoe.

* There are still known bugs in the inlining code (search for
  FIXMEs or 'This is buggy' comments in the relevant code), but the
  correctness has moved along far enough to enable profiling and
  inlining on a large enough set of programs without crashing or
  yielding incorrect results.