POC/API/DEPR: errors kwd for fillna
xref #45153

Upsides: 1) users get to control the behavior, 2) we can deprecate the inconsistent default behaviors to become consistent
Downsides: 1) Larger API surface area, 2) many more test cases to cover (which ATM this PR does none of), 3) increased code complexity, though most of that goes away once deprecations are enforced.

Could implement the same for Index.fillna to keep it consistent.

If we go down this road, I'd want to do the same for other sometimes-casting methods: putmask, where, replace.  (which just leaves `__setitem__` is inconsistent)
Agreed with the goal to get things consistent. I don't have a strong preference on raising vs. coercing by default, or having a keyword or not. +1 on doing this (didn't look in detail), of course should deprecate downcast at the same time.... > Agreed with the goal to get things consistent. I don't have a strong preference on raising vs. coercing by default, or having a keyword or not.

i think coercing by default is ok (its what pandas is good at generally) and keeps things natural while allowing user control if it really matters I think we're all on board, so im going to start writing tests/whatsnew for this.

Are we OK with only "coerce" and "raise" being allowed here?  In other contexts we have "ignore", but I just see that as adding unnecessary API/test surface area. hmm for categorical in particular there is a question about what "coerce" should mean.  e.g. Categorical._replace has coercion logic that is probably what we want here. Mothballing while I try to sort out some of the kinks (and to clear the queue)