* Fix when.js then() when TResult is a subtype of T
Change the order of .then overrides to deprioritize no generics.
* Move the more specific overload to the top
* Make when.js promises compatible with native promises
* Stricter compiler options and fix revealed issues
- Remove optional parameters from callbacks
- Replace `Number` type with `number`
- Improve type checking of when.settle and promise.inspect
* Add stricter types and backwards compatibility
* Minor renaming