BUG: do not replace all nulls with "NaN"-string in Series index
- [x] closes #45263, #45222
- [x] tests added / passed
- [x] Ensure all linting tests pass, see [here](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit) for how to run them
- [x] whatsnew entry

After this, the example 

```
import pandas as pd
import numpy as np

s=pd.Series([1,2,3,4], [True, None, np.nan, pd.NaT])

print(s)
```

yields 

```
True    1
None    2
nan     3
NaT     4
dtype: int64
```

which is good.

I've kept the behavioral changes minimal, however not sure it is the best way to go.

1) `SeriesFormatter` has a `na_rep` (https://github.com/pandas-dev/pandas/blob/b77797cde57969b3ee14d961f4dacd5cab25cb61/pandas/io/formats/format.py#L280) but it is not used for index-formating (I use `None` to signal that I don't want any replacing). But why should values be handled differently?

2. Why does is make sense to replace nans with na_repr in the index in the first place? See https://github.com/pandas-dev/pandas/blob/b77797cde57969b3ee14d961f4dacd5cab25cb61/pandas/core/indexes/base.py#L1392-L1411



Hello @realead! 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 2022-01-19 07:01:19 UTC This is the commit where special handling for the null-objects was added: in #https://github.com/pandas-dev/pandas/pull/3034 with https://github.com/pandas-dev/pandas/commit/aae62135fe7f795c6218de432e9409d25d02e627 The question is what to do about DataFrame?

```
import pandas as pd
import numpy as np
s=pd.DataFrame([1, 2, 3, 4], [True, None, np.nan, pd.NaT])
print(s)
```
leads to 

```
      0
True  1
NaN   2
NaN   3
NaN   4
```

It probably should behave the same way Series behaves? yes After the change np.nan is printed as "nan". Probably we would like to keep "NaN"? How can we access values where index is NaN??
s[NaN] 
s[pd.NaT]
results in an error
Traceback (most recent call last):
  File "<pyshell#16>", line 1, in <module>
    s[NaN]
NameError: name 'NaN' is not defined
 @realead can you merge master. we fixed the doc links there so let's see @jreback  it seems to work now.