[Coroutines] Implement fix for cwg2563 issue and enable RVO under certain conditions
- The cwg2563 issue is fixed by delaying GRO initialization only when the types
mismatch between GRO and function return.
- When the types match directly initialize, which indirectly enables RVO to
kick in, partially restores behavior introduced in
https://reviews.llvm.org/D117087.
- Add entry to release notes.
Background:
https://github.com/llvm/llvm-project/issues/56532
https://cplusplus.github.io/CWG/issues/2563.html
https://github.com/cplusplus/papers/issues/1414
Differential Revision: https://reviews.llvm.org/D145641