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.
[Truffle] Fix PE tests, was missing a transferToInterpreter().
Revert "[Truffle] Reuse Module#instance_methods for Kernel#methods.": not working well yet.

This reverts commit 522036f473be44b7187bb7001d4ed72891948033.
[Truffle] Avoid doing twice the lookup.
[Truffle] Fix version number in build-graal-bundles script.
Merge branch 'master' into truffle-head