resourceloader: Simplify mwLoadEnd hook implementation
In addition to the high overhead of $.Deferred per-module in
mw.loader.using(), this was also using $.when() and another
Deferred in catch() for casting.
The handler for marking mwLoadEnd needs a Promise in our fallback
for compatibility with the original using() call. But the code
within our fallback does not need to use N promises, for that
we can simply use a counter that we decrement, given we only need
to worry about completion.
So basically, use `Deferred#always(callback)`
instead of `Deferred.catch(=>Defered().resolve)).then(callback)`.
This is in preparation for moving the code to NavigationTiming.
Change-Id: I20514d3fe680fc9384a0f7ce0880652970d86856