Object.assign and Object.mixin

Added Object.assign and Object.mixin.

Implements [19.1.3.1](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-19.1.3.1) and [19.1.3.15](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-19.1.3.15) respectively.

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

Closes #352.
Support strings as module identifiers

This adds support for strings module identifiers. It still supports the old ident modules but that will be removed eventually.

```js
module './a' { }
```

gets transformed to:

```js
$traceurModules.registerModule('./a', function() { ... }, global)
```

and

```js
import {x} from './a';
```

gets transformed into:

```js
var x = $traceurModules.getModuleInstanceByUrl('./a').x;
```

There is still a lot of work needed. Known issues:

- 'name' paths should be relative to the Project/WebPage
- export module m from './m' is broken. It needs to call getModuleInstanceByUrl outside the getter.
- Need to implement System.get
- Need to implement System.set
- Need to implement Loader normalization and resolve.

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

Closes #344.
System get set

Add support for System.get and System.set and use those to set up the bootstrapping of the url and module code.

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

Closes #345.
Wrap ClassExpression result in a paran expression

The generated code for ClassExpression needs to be wrapped in a parentheses to allow new to work
correctly.

Fixes #355

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

Closes #356, closes #355.
Remove support for identifier from ModuleSpecifier

The largest part  of this change is about fixing issues with `export{a} from 'name'` which did not do the `System.get` call at the right time.

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

Closes #359.
Remove identifier support for module definition

This removes support for `module Ident { ... }`.
We still support `module 'name' { ... }` for now.

The biggest change is that now traceur.js is building an object structure the public API.

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

Closes #360.
Use arrow functions in RuntimeInliner

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

Closes #361.
module is not a keyword

This moves the parsing of modules into the fall through case of the big switch of parse statements. If the expression is `module` and it is followed by a module declaration (also definition for now) then it is parsed as a module.

Fixes #353

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

Closes #362, closes #353.
Remove TokenType DOLLAR

We do not have a token representing $ any more.
Fix test

It was refering to a global name done, when it should have been
using true.

Fixes #325

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

Closes #363, closes #325.
Update parser to better match latest spec draft

This renames the top level Program to Script.

The parser now also correctly parses top level modules using `parseModule` instead of `parseScript`. The AST node is still the same for now.

Refactor `parseStatementList_` etc so we can remove some dead code.

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

Closes #364.
Call mocha in node_modules instead of assuming it's in PATH

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

Closes #365.