REGR: missing vals not replaceable in categorical
- [x] closes #40472
- [x] tests added / passed
- [x] Ensure all linting tests pass, see [here](https://pandas.pydata.org/pandas-docs/dev/development/contributing.html#code-standards) for how to run them
- [x] whatsnew entry

This restores behavior to before the regression, but I think also deprecating this behavior while patching might be reasonable. Since categoricals represent all missing values the same way, this allows unintuitive behavior like
```
ser = pd.Series([None, "b"]).astype('category')
ser = ser.replace({np.nan: 'c'})
print(ser)
```

replacing the missing value even though `None` and `np.nan` are different missing values. Forcing usage of the more explicit `fillna` seems more reasonable in this case.
Hello @mzeitlin11! Thanks for updating this PR. We checked the lines you've touched for [PEP 8](https://www.python.org/dev/peps/pep-0008) issues, and found:





There are currently no PEP 8 issues detected in this Pull Request. Cheers! :beers: 

##### Comment last updated at 2021-03-27 17:07:49 UTC Ah makes sense, will close until discussion resolved