TYP: simple return types
"simple" meaning, non-unions and non-overload return types (at least in most cases).

xref #47521

edit: sorry for changes in many files - I grep'ed for missing return types inferred by pyright and then fixed the resulting type errors.
Thank you @rhshadrach for your thorough review! I think I addressed your comments as best as I can. Thanks @twoertwein  hm, the docs timed out on main as well - did the annotation cause the docs to fail? I think that's unrelated (my running theory is that something processing the whatsnew files is not parallel safe and hanging)