Added GeneratorInterface

GeneratorInterface allows the easy creation of generators that don't use
the context-switching mechanism of Generator