def inside ensure would also go crazy.  Build all of method def inside new builder instance.
First refactorign of JIT and indy logic.

* Different indy site types are now their own CallSite subclasses.
* Fixed issues with dregexp (once, JVM6 bugs, ...)

This new structure should make it a lot easier for everyone to
follow how we're using indy and what happens when a call site is
bound.
Fix compile errors in unused code I broke.
defined? super impl uses frame klazz.  Force ACP frame push if it is encountered
[Truffle] Use the lazy initialization pattern.

* Also make a static call to #<=.
[Truffle] Fix the bad naming in ExceptionTranslatingNode.
[Truffle] Activate core/module specs, 125 examples passing!
[Truffle] Use the lazy initialization pattern for CompareNode.booleanCastNode.
[Truffle] Fixed bug in value profiling - wasn't checking for object identity.
Optimize returns (merge them with copies where possible).
[Truffle] Move ModuleChain to its own file.
[Truffle] Remove some cruft from Arity.
[Truffle] Step towards talking about required and optional in arity, rather than min and max.
[Truffle] Change min, max, isSplatted to required, optional, argumentsAsArray in the CoreMethod annotation.
[Truffle] Finish factoring Arity into just required, optional, allowsMore.
Merge branch 'master' into truffle-head

Conflicts:
	core/src/main/java/org/jruby/truffle/nodes/RubyValueProfile.java
[Truffle] Use LoopNode for begin-end-while.
[Truffle] Remove loop-counts-through-blocks.
[Truffle] Get rid of the copy of options stored in RubyContext.

We used to copy some of the options into RubyContext where they can be
final for the benefit of the PE, as using Option.load() requires a
volatile read.
[Truffle] Remove visibility asserts - a mess, and don't always make sense in multi-language environment.