CLN: remove split_and_operate in Block.fillna
I didn't see any tests failing locally, so checking here with full CI.
@jbrockmendel do you have an idea of what case would need the `split_and_operate` for `Block.fillna`? Because if it's needed, it's clearly not covered by the tests. 


 > do you have an idea of what case would need the split_and_operate for Block.fillna? Because if it's needed, it's clearly not covered by the tests.

None comes to mind.  Best guess is that for object dtype cases a splitting needs to occur at somewhere in the call stack, and in this case it happens later on even if it doesn't happen here.

Happy to see this go away! lgtm. we have *nothing* hit that codepath? Unfortunately, I just thought of a case:

```
df = pd.DataFrame({'a': [0.1, 0.1, np.nan], 'b': [0.1, 0.2, 0.3]})
df.fillna("string")
```

When splitting, this will only convert the column with missing values to object. But with this PR, it will convert the full block to object dtype to then infer and convert back to numeric the columns that didn't have missing values. So the splitting actually does serve some purpose here (but the end result is the same in both cases, so no tests failed).
 should make a test case out of this? The end result is the same, so I don't think we can test it with a normal test (a benchmark might catch it) im not sure i understand.  isnt the `df.fillna("string")` case one that works in master and fails under this PR?  (and if not, why would finding it be a reason to close this PR?) No, it doesn't fail here, because we will convert to object dtype but then afterwards infer again to float (for columns that didn't have any NaN). So as mentioned above, the *end result* is the same, but it would be achieved with an additional (unnecessary) conversion float -> object -> infer as float. 