feat(transpiler): Transform for..of to Dart as for..in

Added transformation of for..of into Dart for..in.  
Added error for JS for..in since the semantics don't match.  
Added error for for..of utilizing destructuring declarations.

Closes #53 
OK I didn’t follow what you meant before.  I agree that’s a better direction to go. 

> On Nov 17, 2014, at 7:41 AM, Victor Berchet <notifications@github.com> wrote:
> 
> In tools/transpiler/src/outputgeneration/DartParseTreeWriter.js:
> 
> > @@ -465,6 +469,45 @@ export class DartParseTreeWriter extends JavaScriptParseTreeWriter {
> >      this.writeList_(tree.parameterNameAndValues, COMMA, false);
> >    }
> >  
> > +  // FOR LOOPS
> > +  // Translate for..of to for..in and throw error on for..in (JS)
> > +  /**
> > +   * Transforms for..of into for..in.
> > +   * Unsupported:
> > +   *  - Destructuring iterators for map key, value
> My idea was to create a ForOfTransformer that would transform
> 
> // <target> is a placeholder here, could be item or [a, b, c], ...
> for (<target> of iterable) {
>  // ...
> }
> 
> // to 
> 
> for ($tmp in iterable) {
>   let <target> = $tmp;
>   // former body
> }
> If target is a single var, the code would work.
> if target is i.e. [key, value] the code would not work for now because we do not have a destructuring transformer for now. But as soon as we add this transformer (it should be executed after the for..of transformer) things will work.
> 
> Do you think it makes sense ?
> 
> —
> Reply to this email directly or view it on GitHub <https://github.com/angular/angular/pull/174/files#r20432691>.
>