bpo-41295: Reimplement the Carlo Verre "hackcheck" (GH-21528)



Walk down the MRO backwards to find the type that originally defined the final `tp_setattro`, then make sure we are not jumping over intermediate C-level bases with the Python-level call.

Automerge-Triggered-By: @gvanrossum
3 files changed