Numbers checks in valueof

This pull request changes the `lang.types.Number` class and its subclasses to only throw exceptions from their static `valueOf()` constructors and no longer from the `new` version. This will give a significant speedup when creating large amounts of numbers from known "safe" sources, such as database fields. For "unsafe" sources, use the `valueOf()` method instead.