Pinning methods to NaTType - Why not to _NaT?
In [tslib.pyx](https://github.com/pandas-dev/pandas/blob/master/pandas/_libs/tslib.pyx#L3875) there is an inheritance chain (rearranged here for python-friendliness)

```
cdef class _Timestamp(datetime):
[...]

cdef class _NaT(_Timestamp)
[...]

class NaTType(_NaT):
[...]
[...stuff I'm about to ask about...]

NaT = NaTType()
```

A bunch of attributes are pinned to `NaTType` that look like they could be pinned to `_NaT` just as easily.  What's the reason for this?  My understanding is that pinning things to `_NaT` should be more performant in general.

```
# inject the Timestamp field properties
# these by definition return np.nan
fields = ['year', 'quarter', 'month', 'day', 'hour',
          'minute', 'second', 'millisecond', 'microsecond', 'nanosecond',
          'week', 'dayofyear', 'weekofyear', 'days_in_month', 'daysinmonth',
          'dayofweek', 'weekday_name', 'days', 'seconds', 'microseconds',
          'nanoseconds', 'qyear', 'quarter']
for field in fields:
    prop = property(fget=lambda self: np.nan)
    setattr(NaTType, field, prop)
```