Add current-scope/module instrs after arg receive
Merge branch 'master' of jruby.org:jruby
Code cleanup for AddCallProtocolInstructions

* Removed some dead code.
* Added some FIXMEs.
* Added assertions to catch bugs.
Dont force build CFG - let dependencies take care of it.

* OptimizeTempVarsPass does not run if CFG has been built.
* It has been disabled for a while.
* Improves interpreter performance.
Dirt simple fixed-arity support in new JIT.

In order to bring the new JIT in line with the old JIT in terms of
performance, this commit makes the JIT emit a second version of a
given method with exactly the number of required arguments rather
than just an array-boxed version. This second handle is used by
CompiledIRMethod and Bootstrap to wire matching-arity calls
straight through to the right target.

This brings the performance of several benchmarks within throwing
distance of the 1.7 JIT.

Caveats:

* No checking for maximum supported arity. We try to patch through
  any number of arguments. This is good, because it means we can
  escape the 0-3 arity splitting for Ruby code, but it also means
  we're missing some verification that there's not too many args
  to handle in the intermediate MethodHandles.
* CompiledIRMethod.call now has overloads for other arities, but
  this is the only benefit to JVM6 support right now. JVM6 will
  need to emit DynamicMethod.call invocations that match 0-3 args
  rather than boxing all the time.
* This is not as generic as I'd like it to be to support multiple
  method entry points. The approach may extend well to methods
  with N..M arguments.

I have only done a bit of testing with this, but many different
fixed-arity and variable-arity methods appear to bind correctly.
Remove debug print statement
Use MethodType to track multiple signatures for jitted method.
Make interp method => jit call path use 0-3 specific arity.
Ensure CFG is built at the end of IRScope.initScope()

* Unbreaks failing MRI tests that I broke in fa44bc1f
Use a call site cache for JVM6 generated call sites for now.
Always add call protocol instructions in interpreter mode.

* Some benchmarks are marginally faster and others slower.
  Overall, somewhat slower. But, runtime code is simpler.
  So, we are going for this right now.
[Truffle] update for removal of FrameTypeConversion
[Truffle] Add missing copyrights for files in core/src/main/java/org/jruby/truffle.
[Truffle] Fix copyright years for all Java truffle files since October 1.
Make end block use wrappedirclosure so closure is preparedForInterpretation
Hmm how did this compile before
Rearrange debug so if JIT is active we still see CFG print out (made some fixmes too).
Remove weird name == null logic from debug.
Small refactoring to show jit/non-jit intent (similar to how we had this for call/non-call protocol).
Make END blocks not share IRScope between JIT/interp
Record END to IRScope so it is easier for JIT to access END blocks
CFG should print out something more than Java object id