System.register update

This includes the System.register update corresponding to the new format implemented into Traceur here - https://github.com/google/traceur-compiler/pull/1161.

All tests are passing!
correct, when I say `proxy`, I mean a reference to `new Module()`, which allow us to access the live bindings. The questions here are:

* when calling a setter, what object are you passing in? it seems that `moduleObj` is effectibly a reference to the Module instance (aka proxy).
* when importing a module, what object is fulfilling the promise? `moduleObj`???

If those two assumptions are correct, then we are good, but a performance penalty is implied, which is the once that I'm trying to solve. The problem is that the setters are the same, no matter if we import a module or a named export, that's the problem. In theory, we should have a way to use the raw object or the bindings in the setters, maybe passing two arguments, so the setter can decide which one to use.