Allow `fillna(value=None, method="constant")`
Sometimes data has object columns that contain both `NaN`s and `None` and we want to standardize them to `None`. Currently `fillna` doesn't allow `value=None` because `None` is used to mean "no value", and `method=None` to mean "fill with the value", so when both are none it's considered invalid. (On columns with dtypes that have their own NAs, like floats, timestamps, etc., filling with `None` leaves them as-is.)

To get around this, I added `method="constant"` which should also be taken to mean "fill with the value". `method="constant"` is required if filling with `None` (so that `value=None, method=None` still throws), otherwise it works the same as before.

As far as I can tell, doing it this way shouldn't break any existing code. I updated/added some tests for the new behaviour. If it looks like this change might be accepted, I'll update the docs as well.

- [x] tests added / passed
- [ ] passes `black pandas`
- [ ] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry