Move module factory out of basePlugin back to scope
Ditch when.chain, take advantage of polymorphic resolver
Ditch more when.chain uses
Tarjan directed graph cycle detection to detect reference resolution cycles