Amberc: update to use ES6 Promises

The upcoming ES6 Promises API is cleaner and provides less issues then the previously used `Combo` construct.

This pull request updates the current Amberc implementation to make use of Promises via a polyfill.
It makes the overall structure of the compiler more visible as all steps taken can now be found in the `AmberCompiler.main() ` function.
Starting from this implementation it will be easier to turn Amberc into plain Amber code.

Note: `npm install` is required after this is merged to installed the polyfill library.