Trace into descriptor with `__set__` (#154176)
Summary:
As title, this patch basically implements
https://github.com/python/cpython/blob/3.11/Objects/object.c#L1371-L1452,
and make the `__get__` handling more robust.
I ran into this while fixing #133762.
X-link: https://github.com/pytorch/pytorch/pull/154176
Approved by: https://github.com/jansel
Reviewed By: izaitsevfb
Differential Revision: D75488090
fbshipit-source-id: 23246b81e656ee0077a9c71d4f6a64fa114eb501