Add ES6 transpiler support

* All the special casing is to support traceur, regenerator already does the right thing
* Add promise tests
* Add transpiler tests
* Add purposely failing tests to ensure errors are correctly emitted