Previously, only void returning functions were considered for noreturn
attribute candidates. This patch removes this artificial restriction.
Notice the zero-initializations of the CheckFallThroughDiagnostics
objects. In some cases, such as inside MakeForCoroutine(), some struct
members were left uninitialized (probably by accident).
This way all the fields will be zero-initialized, preventing accidental
uninitialized reads during diagnostics construction.