Asynchronous module loader

This is work on an AMD compatible module loader.

https://github.com/amdjs/amdjs-api/wiki/AMD

This allows async module loading, and dependency resolution. See terminal.html in the diff.
load_script() (as well as all the ensure mechanics, the process_waiting() etc...) will be called multiple times ... as things get loaded, defined, required().

Yes, functions whose dependencies fail, never get called.