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.
Deferred functions using promise

Replace internal usage of Deferred with Promise

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

Closes #521.
Remove internal modules and move all module code into modules.js

This removes the special case for internal/standard module names.

To get this working runtime/url.js and runtime/module.js both export their functions to the $traceurRuntime object.

All the System code is now located in runtime/module.js instead of being split up between runtime.js and module.js

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

Closes #526.