Y: 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.
I am confused about error handline... Do we detect it when a script fails to define the expected module even if that script is 'required' once?  I think there should be tests for failure cases.