added failing test
fix test
test case where it returns wrong number instead of undefined
Tweak style of @Raynos's yield* return value tests.

These tests were orginally added by pull request #53.
Assign returned values of yield* expressions to temporary variables.

I totally goofed and didn't realize that the value of a yield* expression
should be whatever value was returned (if any) by the child generator.
This value is often ignored, and child generators often do not return a
value at all, but whenever a value is returned we need to store it in a
temporary variable so that it can be used by larger expressions or
statements in which the yield* sub-expression appears.

Took this opportunity to refactor/improve delegate handling generally.

Closes #52.
Closes #53.
Merge pull request #54 from facebook/delegate-yield-return-values

Respect yield* expression return values.