generator: simplify iterator and sentinel
generator: simplify iterator and sentinel

By moving them out of generator:
* sentinel is no longer a template
* iterator is templated on the promise type and stores a coroutine_handle rather than a pointer to the generator

toby-allsopp/ranges-coroutines