COMPAT: make Categorical._codes settable again
This is a follow-up on https://github.com/pandas-dev/pandas/pull/40033, which changes the `_code` attribute of a Categorical into a property without a setter.

This broke dask / fastparquet, so this PR is making it settable again. We could deprecate the setter, though, at the same time.