CLN: Remove None check in attrs property lookup
`self._attrs` is always initialized to an empty dict per https://github.com/pandas-dev/pandas/blob/c93e8034a13d3dbe2358b1b2f868a0d54d1034a7/pandas/core/generic.py#L275

The attribute `_attrs` is only witten to in two other places

a) in the attrs.setter property (which enforces dict as well)
b) in `__setstate__`, which takes whatever the state is:
   https://github.com/pandas-dev/pandas/blob/c93e8034a13d3dbe2358b1b2f868a0d54d1034a7/pandas/core/generic.py#L2129
   AFAICS (including code history) I do not see a reason that this could be None.
   But if we wanted to be very defensive, we should do the dict enforcing here.


>  But if we wanted to be very defensive, we should do the dict enforcing here.

This would be a good change for this PR I've now included the dict-enforcement in `__setstate__`. Thanks @timhoffm 