Relax Thenable.then contract to allow super wildcard for onResolve, and
remove now-unnecessary casts
Add @GwtCompatible and @GwtIncompatible annotations