[Truffle] Refactor ReferenceEqualNode with @CreateCast.
[Truffle] Refactor Fixnum#<<.
[Truffle] Document lookupConstant().
[Truffle] Move translateCPath next to visitConstDeclNode as they are closely related.
[Truffle] Only check once for presence of a lexicalScope.
[Truffle] Avoid looking twice the same module.

* And make LexicalScope fields private.
Reverting this for now.  IRRuntimeHelper impl should not return warnings or errors and then I can reland (colon 3 broke from private constant test)
current MRI prepend implementation
gross hacks
one more tweak
Remove tags for prepend that pass now. Thanks @tduehr!
Merge branch 'tduehr-prepend_current'

Lands most remaining capabilities of Module#prepend.
Fix #2098: Lambdas are yielded to differently in ruby 2.2 vs 2.1

* When a single value (array or not) is yielded  to lambdas,
  only required args are used to decide whether the value is
  treated as an array or not.

  a = lambda { |x,*| p x}; def foo; yield [1,2]; end; foo &a'
  a = lambda { |x| p x}; def foo; yield [1,2]; end; foo &a'

  In both those snippets, the value of x is [1,2]
[Truffle] newLexicalVersion() only if actually changing the visibility.
[Truffle] Implement private constants and pass all their specs.

* The ReadConstantNode is now passed its LexicalScope.
  We still need to have it in SharedMethodInfo only for Module.nesting (if aliased).
* Add an RubyModule.includedModules() iterator,
  as ancestors() but stopping at the first class seen.
[Truffle] Pass the context explicitly to constant lookup functions.
[Truffle] Fix special lookup for the module keyword.
[Truffle] Fix the last constant spec!
run tests/jruby.index with jruby-complete

some tests fail they are put on allow on travis.
[Truffle] Improve BooleanCastNode so to better reflect its cousin RubyContext.isTruthy().

* They do the same but the node might be more efficient.