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.
What's the motivation for this?  Why isn't ```it instanceof Array``` sufficient?  (I have found http://web.mit.edu/jwalden/www/isArray.html.  Should we link to it?)