BUG: Cast a key to NaT before get loc from Index
- [x] closes #13603
- [x] tests added / passed
- [x] passes `git diff upstream/master | flake8 --diff`
- [x] whatsnew entry

pd.NaT, None, float('nan') and np.nan are
converted NaT in TestTimedeltas.
So we should convert keys if keys are these value.

Fix #13603

## [Current coverage](https://codecov.io/gh/pydata/pandas/pull/13687?src=pr) is **84.38%**

> Merging [#13687](https://codecov.io/gh/pydata/pandas/pull/13687?src=pr) into [master](https://codecov.io/gh/pydata/pandas/branch/master?src=pr) will increase coverage by **<.01%**

``` diff
@@             master     #13687   diff @@
==========================================
  Files           142        142          
  Lines         51223      51225     +2   
  Methods           0          0          
  Messages          0          0          
  Branches          0          0          
==========================================
+ Hits          43224      43226     +2   
  Misses         7999       7999          
  Partials          0          0          
```

> Powered by [Codecov](https://codecov.io?src=pr). Last updated by [6b9cd15...0960395](https://codecov.io/gh/pydata/pandas/compare/6b9cd15f6a655b1ade2c571e32e142bf56dde769...096039564b688decf8ab6365dcda6f779a3ee7cc?src=pr)
 I _think_ related issues should be fixed by changing `pd.Timedelta` to return `pd.NaT` for these nat-likes (also `_is_convertible_to_td` should include nat-likes). 

```
# OK
pd.Timestamp(np.nan)
# NaT
pd.Period(np.nan)
# NaT
pd.Timedelta(np.nan)
# NaT

# NG, Timedelta should return pd.NaT
pd.Timestamp(None)
# NaT
pd.Period(None)
# NaT
pd.Timedelta(None)
# ValueError: cannot construct a Timedelta without a value/unit or descriptive keywords (days,seconds....)
```
 I will challenge `pd.Timedelta` issue on another PR :)
 ok, pls add a whatsnew entry, otherwise lgtm.
 Updated a whatsnew entry!
 thanks!
 😄 
