Revert "revert this for now"

This reverts commit 988eed11e41d3fdfc944deda8a8445ca31a78567.
Fix a couple places constructing CompoundString with null enc.
Minor cleanup.
Intern constant names parsed from indy signature.
RubyClass-stack-related tweak to undef JIT.
Splat should not always unbox in JIT; some paths want RubyArray.
IR line numbers are zero-based, JVM's are 1-based.
Use IRScope.getUsedVariables for tmp-init pass.
Disable jit of scopes that contain eval for now.
Tweaks to explicit and implicit call protocol logic in JIT.

* When no explicit call protocol, we must dispatch through
  DynamicMethod instead of directly via the handle. We need to
  work towards all frame/scope logic being explicit, I believe.
* Set visibility to public, rather than method's visibility. I
  was getting singleton methods showing up as private for no
  obvious reason other than reusing the current method's
  visibility. Need to discuss how to do this right.
* Remove doubled-up protocol in InterpretedIRMethod's dispatch to
  CompileIRMethod.
Disable DCE for now. #1786
Fix BlockGiven in jit.
Fix dumb bug causing jitted code to only get used once.
Fix ivar set/get to use new IR-related bootstrapping.
Avoid and disable ScopeModule until issues from #1792 are fixed.
Merge remote-tracking branch 'origin/master' into ir_jit
Add missing warning for uninitialized ivar.
For inheritance const search, ensure target is same next time.
Only warning() when verbose.
Properly pass args to m_m in indy call paths.