Supporting async functiosn

This is only an early version. 
My hand-written tests as well as some PDCurses demos are working, but there are still some not working.

This PR is mainly for code review, because I think that the approach has been determined.

A library is necessary to support manipulating async stack frames. asm.js is not supported yet, but it won't be difficult, as there are only number operations (no references to functions)
https://gist.github.com/coolwanglu/c544f7d668bc8bba0779#file-library_async-js

`preamble.js` is also changed: kripken/emscripten#2478

Function pointers are not supported yet.