export getVariableName from FreeVariableChecker.

Allow derived classes to use this helper function

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

Closes #518.
Match current js-loader spec for hooks locate and normalize

System.locate(load) replacing resolve(name).
System.normalize(name, refererName, refererAddress) replacing
  normalize(name, options)

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

Closes #519.
Fix issue with empty destructuring patterns

We were generating invalid code for `var {} = expr`.

Fix parsing of `import {} from 'name'` which in turn ended up with a `var {} = ...`.

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

Closes #522.
Add Promise polyfill

This adds a port of Andreas Rossbergs Promise implementation which is what V8 is based on too.

It uses Yehuda's async/asap function to do the async call. This is done by adding a new npm dependency. Fortunately they are using ES6 modules so it is a simple import.

Since Promises are always async I had to add support for async tests to the feature tests. These are done by a new comment at the top, just like we have done before with other comments.

This new runtime file now requires compilation

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

Closes #520.
Fix iteration when running with node --harmony.

The current versions of Traceur (0.0.7 and master) don't work with `node --harmony`. The problem is that the attribute name that is used for the iterator is different when defined on `Array.prototype` vs when used in the generated code.

The following exceptions occur:

```
TypeError: Property '[object Object]' of object #<Object> is not a function
 at /Users/rolftimmermans/Code/vendor/traceur-compiler/test/unit/node/resources/generator.js:803:41
 at ContextifyScript.Script.runInNewContext (vm.js:38:15)
 at Object.exports.runInNewContext (vm.js:65:17)
 at executeFileWithRuntime (/Users/rolftimmermans/Code/vendor/traceur-compiler/test/unit/node/generated-code-dependencies.js:48:8)
 at Context.<anonymous> (/Users/rolftimmermans/Code/vendor/traceur-compiler/test/unit/node/generated-code-dependencies.js:61:18)
 at Test.Runnable.run (/Users/rolftimmermans/Code/vendor/traceur-compiler/node_modules/mocha/lib/runnable.js:211:32)
 at Runner.runTest (/Users/rolftimmermans/Code/vendor/traceur-compiler/node_modules/mocha/lib/runner.js:358:10)
 at /Users/rolftimmermans/Code/vendor/traceur-compiler/node_modules/mocha/lib/runner.js:404:12
 at next (/Users/rolftimmermans/Code/vendor/traceur-compiler/node_modules/mocha/lib/runner.js:284:14)
 at /Users/rolftimmermans/Code/vendor/traceur-compiler/node_modules/mocha/lib/runner.js:293:7
```

This is an attempt to fix the problem. Tests pass on node with and without the harmony flag (replacing `node_modules/.bin/mocha` with `node_modules/.bin/mocha --harmony` in the `Makefile`).

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

Closes #525.