Add a compliance.strict option for maximum compliance with RubySpec.
Follow RubySpec for processing of switches in RUBYOPTS if strict compliance.
Move the compliance option into a new category.
[Truffle] Use -Xcompliance.strict to get RUBYOPT specs passing.
Enable --yydebug if -Xcompliance.strict.
Make sure every scope gets its own copy of GLOBAL_ENSURE_BLOCK_LABEL

* These labels were being shared across all blocks which caused buggy
  rescue maps being set up across scopes and led to infinite loops
  in block_spec.rb and raise_spec.rb when specs were run with all
  passes enabled after recent InterpreterContext changes.

* This patch fixes that up.
Prepare instrs. for interp once per scope

* If interp context is available, don't rerun prepareInterpreterContext
  repeatedly on scopes. But, in order to make sure we get the right
  flags for pushing/popping scopes, move the cached info for them
  into InterpreterContext. But, now that I write this, perhaps the
  biggest perf. regression was from running prepareInterpreterContext
  repeatedly rather than fetching the flags repeatedly.
Further streamlining of interpreter context

* Deleted old code in IRScope that is no longer relevant.

* For closures, short-circuited prepareForInterpretation from
  base class to ensure that callers use the 1-arg version where
  it needs to be built.

* Subsequent crashers exposed an unresolved FIXME in BuildLambdaInstr
  that had a WrappedIRClosure that needed cloning and build of an
  interpreter context as well.
[build] do use released jruby for building when on SNAPSHOT version
[build] removing obsolete files
[Truffle] Hide better ModuleChain and provide ancestor iterators.

* So we have less comparisons with IncludedModule,
  clearer expectations on the capabilities of the receiver
  and avoid having to call getActualModule ourselves.
[Truffle] assignableTo should only be defined for classes.
[Truffle] Simplify Module#<=>, no need for another slower specialization.
[Truffle] Remove last misusages of ModuleChain.
[Truffle] Make ModuleChain and IncludedModule as private as Java allows.
Print out which scope has no CFG in error message
nested closures during an ensure clone in IRBuilder should also be ensure clones
Inlining clones can call this method.  Make sure they do not pick up ensureClone state.
Make issue on io regression on master #2045
Merge branch 'truffle-head'