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!
that's why I have this: 

```
       if (!Object.getOwnPropertyDescriptor(proxy, name)) {
          Object.defineProperty(proxy, name, {
            enumerable: true,
            get: function() {
              return exportedValues[name];
            }
          });
        }
```

so, it happens once, and I keep `exportedValues` and `proxy` around as two ways of accessing those values. the question is: should setters receive both and use whatever makes sense for the occasion?