Implement Python Generators

This rather large patch which implement python generators.

is there a reason that generators can't do OSR?  if so we should mention why here