Adds graph-util for deep clone, topological sort

Also renames dependsOnModules option to alwaysLoadedAfterModules to make
the contract of modules clearer.
Checkpoint for in-progress js-module-manager

(Tests currently fail and aren't finished yet).
Next checkpoint for js-module-manager.
Adds union, intersection to graph-util
Next checkpoint on js-module-manager: built files

for each file ID:
- path
- compileMode
- inferredDeps
- neededInModules

This map was the last major data structure needed before calcInputs()
could be implemented.
Main js-module-manager test case works

Remaining work is to fill in remaining tests and ensure expected
behavior in those cases.
Merge pull request #1 from Lindurion/js-module-manager

Merge js-module-manager branch changes back into master