Change to use Promise instead of Deferred in code gen
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.
Merge branch 'master' into deferred-functions-using-promise

Conflicts:
	Makefile
	bin/traceur.js
	src/runtime/polyfills/Promise.js
	test/test-utils.js