Fix issue with for loops in generators

The old code generated an invalid state machine for certain combinations of for loops with empty headers. This fixes the code and tries to clean it up so that there are less branches that were spread out all over the function, making it hard to reason about.

We had tests for all the combinations before but the test didn't call next enough times to actually verify that the behavior was correct. This expands on the tests to make sure we actually run the generator a few times.

Fixes #802, #331

Review URL: https://api.github.com/repos/google/traceur-compiler/issues/810

Closes #810, closes #802.
Move code down into the CPS generator transformer

This moves the special case handling of `yield *` and `expr = yield` into GeneratorTransformer (which is the generator specific CPS transformer) instead of doing it in a preprocessing transformer.

The motivation for this is to eventually support more yield expression and not all yield expressions can be done in a preprocesser.

Review URL: https://api.github.com/repos/google/traceur-compiler/issues/815

Closes #815.
AMD transformer ES6 interop