[Truffle] Introduce LexicalScope to resolve constants.

* Built during parsing, and completed with live modules when opening those.
* No need for callingSelf except in the rare case of protected.
* A few improvements on visbility checking.
[Truffle] Add the SharedMethodInfo.generated() factory for generated method info
[Truffle] A few constant specs passing.
[Truffle] Provide Module#const_set(Symbol,value).
[Truffle] Stop using lexicalParentModule but keep it for now to compute name.
[Truffle] BasicObject knows itself.
[Truffle] Implement Module.nesting.
[Truffle] Remove unused lexicalParentModule.
[Truffle] Fix Module#name.
[Truffle] Fix most of constant lookup!

* Use lexical scoping instead of pseudo-dynamic scoping.
* Stop defining constants on singleton class, we define on the receiver only.
* Temporarily disable the constant cache, we want better semantics first.
[Truffle] We pass a lot more constant specs now!
[Truffle] Search Object and its ancestors for modules if all else fails.
[Truffle] Evaluate RHS first in constant assignment.
[Truffle] Fix a TODO in WriteConstantNode.
[Truffle] A couple specs got fixed by constant work.
[Truffle] A few more specs in language/ are passing.

* Also includes some fixes by the method lookup changes.
[Truffle] Merge branch 'lexical_scope'

* Constant cache is disabled for now.

Conflicts:
	core/src/main/java/org/jruby/truffle/nodes/core/CoreMethodNodeManager.java
	core/src/main/java/org/jruby/truffle/runtime/RubyContext.java
[Truffle] Tag failing unreliable specs.