mw.loader: Add 'require' as Promise value for using()
Discourage use of the global mw.loader.require method since it's contextless,
and doesn't allow for future expansion where we might detect missing declared
dependencies or could track stacking context.
In regular execution context, there is already a local require() method.
For ad-hoc loading through mw.loader.using() there is now a reference to a
require function.
This also discourages code from assuming that the internal implement() method
is synchronous - which may change after T142129.
Change-Id: Ia040729901b1e77da8d3bf4830bb076f8fa8c6e9