WIP: ensure names are pinned correctly
Discussed in #24397, this defines a metaclass for PandasObject that does two things:

- at class-definition, iterate over all the methods in the class namespace and assert that the method's `__name__` matches the namespace name.
- define comparisons on the _classes_ so we can simplify the `NotImplemented` checks to `if type(self) < type(other)`

The `__name__` have a whole bunch that currently fail, will whittle those down.