[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.
synchronized class loading properly - fixes #2108

[skip ci]
[Truffle] Bignums have no singleton class.
[Truffle] Implement Kernel#methods(false).
[Truffle] Refactor RubyClass constructors for more clarity.

* A regular class shall always have a singleton class.
* On usage of a singleton class (via getSingletonClass),
  it should have its own singleton class for proper lookup and consistency.
* Also try to simplify booting classes.
* Remove useless currentNode in unsafeSetSuperclass().
[Truffle] Remove the useless currentNode argument from RubyClass constructors.
[Truffle] Disallow #new on a singleton class.
[Truffle] Implement Class#allocate.
[Truffle] Remove passing spec's tag.
[Truffle] Default for the argument of Kernel#methods is true.
[Truffle] Default for the argument of Module#instance_methods is true.
[Truffle] Singleton classes on objects should also have their own singleton classes.

* So there is always one level of singleton classes more than the user asked,
  such that these singleton classes have a proper metaclass.
[Truffle] Fix Module#instance_methods.
[Truffle] Reuse Module#instance_methods for Kernel#methods.