TYP simplify overloads for fillna
`fillna` doesn't allow users to pass both `value` and `method`, so in effect the arguments after `value` are already keyword-only. So, the overloads can be simplified immediately.

```python
import pandas as pd

inplace : bool  

reveal_type(pd.Series([1,2,3]).fillna(value=0, inplace=False))
reveal_type(pd.Series([1,2,3]).fillna(method='pad', inplace=False))
reveal_type(pd.Series([1,2,3]).fillna(value=0, axis=0, inplace=False))
reveal_type(pd.Series([1,2,3]).fillna(method='pad', axis=0, inplace=False))

reveal_type(pd.Series([1,2,3]).fillna(value=0, inplace=True))
reveal_type(pd.Series([1,2,3]).fillna(method='pad', inplace=True))
reveal_type(pd.Series([1,2,3]).fillna(value=0, axis=0, inplace=True))
reveal_type(pd.Series([1,2,3]).fillna(method='pad', axis=0, inplace=True))

reveal_type(pd.Series([1,2,3]).fillna(value=0, inplace=inplace))
reveal_type(pd.Series([1,2,3]).fillna(method='pad', inplace=inplace))
reveal_type(pd.Series([1,2,3]).fillna(value=0, axis=0, inplace=inplace))
reveal_type(pd.Series([1,2,3]).fillna(method='pad', axis=0, inplace=inplace))


reveal_type(pd.DataFrame([1,2,3]).fillna(value=0, inplace=False))
reveal_type(pd.DataFrame([1,2,3]).fillna(method='pad', inplace=False))
reveal_type(pd.DataFrame([1,2,3]).fillna(value=0, axis=0, inplace=False))
reveal_type(pd.DataFrame([1,2,3]).fillna(method='pad', axis=0, inplace=False))

reveal_type(pd.DataFrame([1,2,3]).fillna(value=0, inplace=True))
reveal_type(pd.DataFrame([1,2,3]).fillna(method='pad', inplace=True))
reveal_type(pd.DataFrame([1,2,3]).fillna(value=0, axis=0, inplace=True))
reveal_type(pd.DataFrame([1,2,3]).fillna(method='pad', axis=0, inplace=True))

reveal_type(pd.DataFrame([1,2,3]).fillna(value=0, inplace=inplace))
reveal_type(pd.DataFrame([1,2,3]).fillna(method='pad', inplace=inplace))
reveal_type(pd.DataFrame([1,2,3]).fillna(value=0, axis=0, inplace=inplace))
reveal_type(pd.DataFrame([1,2,3]).fillna(method='pad', axis=0, inplace=inplace))

```
still type checks correctly:
```
$ mypy t.py 
t.py:5: note: Revealed type is 'pandas.core.series.Series'
t.py:6: note: Revealed type is 'pandas.core.series.Series'
t.py:7: note: Revealed type is 'pandas.core.series.Series'
t.py:8: note: Revealed type is 'pandas.core.series.Series'
t.py:10: note: Revealed type is 'None'
t.py:11: note: Revealed type is 'None'
t.py:12: note: Revealed type is 'None'
t.py:13: note: Revealed type is 'None'
t.py:15: note: Revealed type is 'Union[pandas.core.series.Series, None]'
t.py:16: note: Revealed type is 'Union[pandas.core.series.Series, None]'
t.py:17: note: Revealed type is 'Union[pandas.core.series.Series, None]'
t.py:18: note: Revealed type is 'Union[pandas.core.series.Series, None]'
t.py:21: note: Revealed type is 'pandas.core.frame.DataFrame'
t.py:22: note: Revealed type is 'pandas.core.frame.DataFrame'
t.py:23: note: Revealed type is 'pandas.core.frame.DataFrame'
t.py:24: note: Revealed type is 'pandas.core.frame.DataFrame'
t.py:26: note: Revealed type is 'None'
t.py:27: note: Revealed type is 'None'
t.py:28: note: Revealed type is 'None'
t.py:29: note: Revealed type is 'None'
t.py:31: note: Revealed type is 'Union[pandas.core.frame.DataFrame, None]'
t.py:32: note: Revealed type is 'Union[pandas.core.frame.DataFrame, None]'
t.py:33: note: Revealed type is 'Union[pandas.core.frame.DataFrame, None]'
t.py:34: note: Revealed type is 'Union[pandas.core.frame.DataFrame, None]'
```
what happens if `None` is passed for values, say by forwarding on parameters and method is also specified. > what happens if `None` is passed for values, say by forwarding on parameters and method is also specified.

I hadn't considered that someone would pass `None` there, but you're right - I'll deprecate positional arguments here too then first