Generator object model

- A generator function should be an instance of GeneratorFunctionPrototype.
- Instances of a generator should an instance of the generator function.
- Overriding the function name should not break the generator.

Fixes #112, #616, #928