In an ideal world mw.mobileFrontend would just have two methods - require and define (and hopefully these would one day land in core in some form)
To achieve this we'll need to do several things... (Please break out sub tasks as and when you see fit)
* Move assertMode, getMode, isAlphaGroupMember isBetaGroupMember to MobileContext.js (T85572)
* Move getCurrentPage to Skin
* Do not register init function (https://gerrit.wikimedia.org/r/183704)
* move loadModule to its own function (https://gerrit.wikimedia.org/r/183647)
* Move isTestA to more appropriate place (https://gerrit.wikimedia.org/r/182290)
* Move overlayManager and router as defined modules using M.define
* same for pageApi (https://gerrit.wikimedia.org/r/183648)
* M should no longer need to be an EventEmitter - we should use M.require( 'eventemitter' ) instead or use events on Skin