Support circular dependency in System.register() under modules='instantiate' option

Uses two-phase declaration / execution process to separate
  dependency binding from execution.

Includes https://github.com/ModuleLoader/es6-module-loader.git as third-party/, License MIT, for testing circular references.  Adds tests for loading with circular references.

Closes #971, #953, #424, #107