Declare temp vars in the closest function scope

Allow spread temp vars to be reused in the same function scope.

Review URL: https://github.com/google/traceur-compiler/issues/286

Closes #286.
Make generators used a boxed return value.

Now the generator returns `{value: any, done: boolean}`. Instead of throwing a
StopIteration when it is done you can check the done property of the return
value.

Generator close has also been removed (it was agreed on es-discuss that we do
not need this in ES).

Fixes #299

Review URL: https://github.com/google/traceur-compiler/issues/300

Closes #300, closes #299.