First build needs node_modules/src/node files.

Fixes #682

TBR=@arv

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

Closes #685, closes #682.
Define ModuleStore and System.

Rename modules.js -> ModuleStore.js.
Former System now ModuleStore.
System now an instance of Loader.
Forward get/set/normalize through Loader/LoaderHooks/ModuleStore.

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

Closes #679.
module directory parsing command option

This option allows the commandline ability to convert a directory of ES6 modules, into an output directory of transpiled modules. The module files remain distinct:

```
  traceur --dir app app-built
```

This then naturally allows the ability to transpile a directory full of ES6 modules into AMD ES5 modules:

```
  traceur --dir app app-built --modules=amd
```

Then does what we want!

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

Closes #686.
Fix issues with labels in generators

- All named break and continue statements need to be transformed into a state machine
- The way that labels where propagated down was not correct

Fixes #605

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

Closes #680, closes #605.
AMD __transpiledModule flag for System loader transpilation support

To explain the feature, the reason for this is I want to be able to dynamically load AMD from ES6 Module Loader, but also support loading AMD that is compiled from ES6 and should be treated like an ES6 module.

In this way, one can write ES6 modules, then transpile them back into AMD for production, and have the `System` loader behave identically, just without the Traceur step.

But, in order to distinguish handling between an AMD module and an ES6 in disguise as an AMD module, we need to have some kind of flag to know that we should treat it as the module object directly:

```javascript
  new Module(amdExport)
```

instead of using the `default` property of a module, which is done for AMD exports normally for compatibility:

```javascript
  new Module({ default: amdExport })
```

Suggestions welcome if there are better ways of going about this.

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

Closes #683.
Correct make dependencies for src/codegeneration/modules and to fire npm install on make clean.

Sync up bin/traceur.js

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

Closes #687.
Annotations extensions

Added new extensions to support annotations on classes, functions, and parameters.  Annotations are written in the Java style of <code>@Annotation(param)</code>.  They can appear before a class or function declaration, class elements as well as formal parameters.  The annotations on the class/function declarations and class elements are written out to an <code>annotations</code> property array on the element.  Annotations on formal parameters are written out in a <code>parameters</code> two dimensional array (one array per-parameter) on the parent element.

For example:
```javascript
@Anno
class Test {
  @Anno
  method(@Anno x) {}

  @Anno
  get getter() { return 1; }
}
```

would write the following metadata:
```javascript
Test.annotations = [new Anno];
Test.prototype.method.annotations = [new Anno];
Test.prototype.method.parameters = [[new Anno]];
Object.getOwnPropertyDescriptor(Test.prototype, "getter").get.annotations = [new Anno];
```

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

Closes #660.
Lookup modules in ModuleStore before attempting load

Define ExportsList as description of exports.
Extend ExportsList to define ModuleDescription and ModuleSymbol.

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

Closes #688.
Simplify generated generator code.

- Instead of storing things in the closure we store it on a context object.
- Remove the $G object
- Use a sentinel for termination
- Extract async function code into a runtime function to reduce code duplication.

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

Closes #689.