Auto generate the import for ParseTreeTransformer

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

Closes #440.
inline module runtime helpers

This is a first step towards https://github.com/google/traceur-compiler/issues/437, just supporting the standard helper inlining for modules as is given by scripts.

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

Closes #438.
Follow up change to RuntimeInliner

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

Closes #441.
Fix issues with tree writer for modules and default export

Fixes #439

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

Closes #442, closes #439.
Change class transformer to use hoisting

We now generate FunctionDeclarations, which hoists as needed.

For example:

```js
class B {}
```

generates

```js
function B() {}
$__class(B, {}, {});
```

and

```js
class B extends C {
  constructor() {}
}
```

generates

```js
function B() {}
$__classExt(B, {}, {}, C);
```

These two are the simlest case. When we use `super` we need to capture a binding to the proto parent.

For ClassExpression we still need to use an IIFE to encapsulate the name and/or the proto parent.

Since we are no longer wrapping the code in an IIFE at all times we need to inject `'use strict'` into the function bodies if the enclosing code is not strict.

This also adds support for a transformer to return more than one tree by returning an `AnonBlock`. Anonymous blocks are flattened in `transformList`.

Fixes #322

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

Closes #436, closes #322.
Indent variable statements

We now indent multi variable declaration 4 spaces:

```js
var x,
    y = 42,
    z = [];
```

Fixes #419

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

Closes #443, closes #419.
Fix code gen for classes so that the stack trace looks nicer.

Wrap runtime calls in parens so that `$__class` does not show up in stack traces.

Merge `$__class` and `$__classExt` into one function.

Restructure the temp vars a bit to provide cleaner stack traces.

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

Closes #444.
Rename PendingModule to LazyInitializedModule, Fixes 421

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

Closes #450.
test import default as a name

Here is a test for #446. It is passing fine, so this can be left out.

Not sure why I was seeing this fail before.

Review URL: https://github.com/google/traceur-compiler/pull/452
Close GH-456: Multi transformer, first step on #435.
Make arrow functions use lexical arguments

Arrow functions should use lexical arguments from its outer scope.

This also changes to use a lexical this instead of bind this.

Some refactoring to share code and to reuse the temp var in case there are multiple temp vars for this/arguments.

Fixes #449

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

Closes #451, closes #449.
Remove ModuleTransformer dependence on 'project', part of issue 435

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

Closes #458.
Revert class hoisting

Classes should not hoist

This is a revert of 8da94294ed279e60d05a9ff116de00b030d63897 and 5d8db529fe8cba856b3f174baa6a5082e396ad7b

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

Closes #460.
Add test with export * leading to duplicate export
Add debug target to build sourcemap

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

Closes #467.
Fix conflict issue with alpha renaming of this in arrow functions

By doing the alpha renaming in the outer function first we do the renaming of inner arrow functions too.

Fixes #466

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

Closes #468, closes #466.
Close GH-472: Refactor ProgramTransformer into FromOptionsTransformer and ProjectTrans....
Unify transformer constructor type signature

This allows us to remove a bunch of boilerplate code.

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

Closes #473.
Fix parsing of arrow functions

Arrow functions should be parsed as AssignmentExpression, meaning that they have the lowest precedence of them all.

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

Closes #464.
Change code gen for module getters

This changes the code gen for modules to return a simpler object literal. If someone asks for a module instance object, using `module ident from 'name'` or `System.get('name')`, we create the `Module` object at that point.

The benefit for this is that we now have a smaller code gen and it allows follow up changes to dynamically do `export * from 'name'`.

Partial fix for #470

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

Closes #474.