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