Support operator overloading for UDT (#20033)
Summary:
Support operator overloading for User Defined Types, which includes desugaring `a + b` and python builtin functions which call into a method if it is defined like `len(x)`.
See https://rszalski.github.io/magicmethods/ for list of magic methods.
Pull Request resolved: https://github.com/pytorch/pytorch/pull/20033
Reviewed By: driazati
Differential Revision: D15246573
Pulled By: eellison
fbshipit-source-id: 03d45dd524ea2a3b40db36843d6067bede27b30d