Generate ES3 from the CommonJS formatter

@stefanpenner @caridy @ericf 

I do not intend to merge this. I wanted to generate some discussion around generating more performant CJS code. This is currently broken and will not pass all the tests, specifically it fails with anything binding or early cycle-related.

I can make this better by ensuring that any updates to exported values are disallowed, more or less "solving" the binding issue by disallowing them. Not sure if it's possible to handle the early cycles case.