[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.