[Truffle] Debug some RubyModule.
[Truffle] Add ModuleChain.getActualModule() for polymorphism.

* Remove now useless getIncludedModule.
* We might get a problem if RubyClass are no more RubyModule,
  but then we should have a ModuleLike interface.
[Truffle] Fix Module#include so it does not copy but modify the ancestor chain.

* Which means we must also include transitively-inluded modules.
[Truffle] The lexical parent module is a real Module, not an IncludedModule.
[Truffle] Fix bad call to Module#include with a Class.
[Truffle] Ignore visibility in FCALLs.
[Truffle] A couple constant specs are passing now!
[Truffle] Fix module_function (and corresponding isModuleMethod).

* makes instance method private and singleton method public.
* visibility is ignored when isModuleMethod = true.
[Truffle] Fix a few internal DispatchHeadNode doing calls on self.

* So they don't do visibility checking.
[Truffle] Ignore visibility in VCALLs as well.
[Truffle] Stop depending on receiver to do visibility checking.

* Proc#binding is simply not implemented, it was using private Kernel#binding.
[Truffle] Remove redundant check.
[Truffle] Fix the mix of qualified or not org.jruby.ast.CallNode: unqualify.
[Truffle] Document and simplify a few cases dealing with visibility in dispath.
[Truffle] Add a new specialisation for Array#-, tons of extra specs pass.
[Truffle] Be more clear about errors that go all the way to the top.
[Truffle] Turn on debugging option by mistake.
[Truffle] Improve #throw.
Add LVA invalidation after more other passes.

* OptimizeDynScopes changes local vars to tmps!
* LocalOptimizePass shouldn't technically modify LVA state,
  since it is "local", but late at night, and I want to be
  conservative for now.
Tweak pass ordering to minimize LVA invalidations.

* Tweak pass ordering so that we can reuse LVA information
  for passes without having to rerun it.