Do not hoist the class name binding when hoisting variables

Fixes #987
Fix string decoding in LiteralToken.js
Generator object model

- A generator function should be an instance of GeneratorFunctionPrototype.
- Instances of a generator should an instance of the generator function.
- Overriding the function name should not break the generator.

Fixes #112, #616, #928
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

Review URL: https://github.com/google/traceur-compiler/pull/958

Closes #958, closes #971.
allow easy module naming and anonymous modules

- Allows "moduleName" as input to require('traceur').compile
- Does not set moduleName by default for this Node compile and --dir compile.
- When moduleName is not set, AMD define and System.register calls are anonymous
- When moduleName is set, AMD now outputs named defines