Some tiny optimizations to TypedInt, TypedFloat and TypedComplex:
a) preconstruct the dtypes against which we will be comparing
b) add `__slots__` to subclasses of float and complex. We originally skipped these because `int` subclasses cannot define `__slots__` because they are variable width types, however there's no trouble doing so for float and complex.
PiperOrigin-RevId: 907052848