support coroutine

A few questions

- How about a variance of `emscripten_coroutine_create` that allows customized stack size?
- Do we need `emscriptens_coroutine_destroy`, for those coroutine we don't need anymore, but still running?
- Do we need to save and restore STACK_MAX?
- The code is not actually asm.js validated, not sure how to make _malloc and _free work.
We have switched to a new docs format, where the docs go in `./site/source/docs/api_reference/emscripten.h.rst` in restructured text format. Need to remove the docs here and write this stuff there.