Proper Numeric support

Early pull request **TO NOT MERGE** so we can fix the main issue with this.

We need a way to either bridge a class with a different base class (might fix #476 as well), or hack around the ancestors for `Number` so it is seen as an instance of `Numeric`.

This compliancy is fairly important for any number related code, I personally need to use it in opal-browser and another project.

This issue came up while working on the `Math` module, both the lack of `Complex` and `Rational` was throwing off specs.