[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.
Merge remote-tracking branch 'origin/master' into non-indy-jit