Significantly simplified many aspects of Generator's implementation

Removed YieldResult. Now handled as a function of the value placed in
yield_value
Fixed corner case with yield_back internal- Erroneous behaviour if
initially called with YieldBack::Stop.