When.java - change static methods to instance methods, they were just confusing things.
Resolver - overloaded reject() to accept a TResolve reason.
Promise.java - now extends the Thenable interface and provides then() overloads with fewer callbacks.