Cyclic dependencies work in some modules loaders (e.g. in SystemJS), but they don't work in CommonJS. We should get rid of them.
This issue also includes changing the build to ensure we won't get cyclic dependencies back (e.g. by walking the node.js dependencies via module.parent / module.children.
Should be done in a module by module fashion to avoid too many merge conflicts.