Improve generator<T> codegen on Clang.
Improve generator<T> codegen on Clang.

Use a separate 'generator_sentinel' type for the end() iterator.
This avoids some mutation of the coroutine_handle member of the
iterator and turns the comparison into a call to .done().

Seems to allow better allocation elision of the coroutine frame
in some cases when building under Clang.

lewissbaker/cppcoro,lewissbaker/cppcoro,lewissbaker/cppcoro,lewissbaker/cppcoro