AMD CJS require alias support

I've merged in https://github.com/systemjs/systemjs/pull/130, but with some additional changes to support separating the CJS and AMD layers entirely, since the code has diverged enough at this point.

@justinbmeyer thanks for this, and let me know if these adjustments work ok for you.