PERF: lookups on Timestamp attributes
This is pretty ugly, but it avoids python-space attribute lookups e.g. `__Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_microsecond)`

cc @scoder is there a way to make this unnecessary?  I'm imagining a cdef property that aliased these attributes appropriately.
Hmm, looks like we still haven't documented C properties. But isn't this a use case for exactly that? We could just declare the read-only attributes as C properties on the `extern` types in `cpython/datetime.pxd`, and back them by the respective macro calls. > But isn't this a use case for exactly that?

Maybe?  I don't think I've read about C properties.  I still get `Cdef functions/classes cannot take arbitrary decorators` when I try to decorate a cdef method with `@property` I've written up a doc section, it'll be on readthedocs as soon as it's built:
https://cython.readthedocs.io/en/latest/src/userguide/extension_types.html#c-inline-properties

Here's the example that I've written:
https://github.com/cython/cython/blob/master/docs/examples/userguide/extension_types/c_property.pyx Note that this is a Cython 3.0 feature. > Note that this is a Cython 3.0 feature.

One more reason to be excited for 3.0.  Closing until then. PR that adds properties to `datetime.pxd` welcome. :)