Use CompilerPass.run to process nested scopes.
[Truffle] Allow the extra parameter of Module#constants.
[Truffle] Keep the same terminology: ignoreVisibility instead of obscure fcall.

* There is also vcall so fcall is just not good enough.
[Truffle] Fix usage of flush_stdout on STDOUT to use the public module method.

* And not the private instance one.
Novice error: Add hashCode() & equals() for comparison.
[Truffle] Remove cases using both isModuleMethod and visibility.

*  Also add a warning (but cannot detect the default PUBLIC visibility).
[Truffle] Rename isModuleMethod to isModuleFunction.

* This is colser to Ruby terminology.
* Also indicates the receiver is likely ignored.
[Truffle] Kernel.binding should not need self.

* Fixes: eval "self", Kernel.binding
[Truffle] Remove the last usage of isModuleFunction and needsSelf.
[Truffle] Do not allow module functions to use self as it depends on context.

* One can use RubyArguments.getSelf(frame.getArguments()) for extraordinary cases.
* But these tend to never happen, we just need better support for singleton-only methods.
temp locl replace var clone missing
Note to self: dont ride your bike for 30 minutes jump off and commit your code
Stick a fork in rescueMap's eye...add rpc field to instr to eliminate need for map since all instrs need rpc anyways
Clone all instrs in linearized instr list so that when JIT starts it cannot mangle anything in those instrs.  Cannot see any measurable startup impact in this change
Fix a bunch of issues with cloning.

* Caught while trying to use cloned instructions in interpreter.
  So far, cloning was only being used for ensure-blocks and
  in IRBuilder where these bugs were less problematic or at least
  never caused problems so far.
Minimal fixes to IR to get JRuby compiling again.
[Truffle] Time#- should use real rather than integral seconds.
Fixup broken commit c02df12e.
Make LocalVariable fields final
[Truffle] Use visibility flag in #respond_to?.