Added Lifecycle events on modules:
onWire()is called when a module is wired byfrapp(). Either on startup or whenever it is added to the app viaupdate(). This method is called on the deepest modules first, and then higher up in the tree, so that when a module'sonWire()is called, all its sub-modules have had theironWire()called already.onRemove()is called when a module is removed from the app viaupdate(). This method is called on the highest modules first, so that when a module'sonRemove()is called, it's sub-modules are still fully functionals.
The router now uses the lifecycle events instead of init() and remove().