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 increase performance when creating large amounts of numbers from known "safe" sources, such as database fields. For "unsafe" sources, use the `valueOf()` method instead.

### Performance
```sh
$ time xp -e 'for ($i= 0; $i < 1000000; $i++) { new \lang\types\Long($i); }'
```
This gives a result **0m1.732s** `->` **0m1.480s**

### Consistency
Another place this is used is the `text.regex.Pattern` class, where `new Pattern()` doesn't check, but `Pattern::compile()` does.