API: Change Period('NAT') to return NaT
- [x] closes #12759, #13582
- [x] tests added / passed
- [x] passes `git diff upstream/master | flake8 --diff`
- [x] whatsnew entry
- `pd.Period('NaT', freq='D')` now returns `pd.NaT` rather than its own nat repr. 
- To be compat with `Period` arithmetic, `pd.NaT` now supports addition / subtraction with `int` (previously `ValueError`).

```
pd.NaT + 1
# pd.NaT
```

Added tests for following:
- [x] `Period` and `PeriodIndex`, `Series` ops
  - [x] add, sub, comp
- [x] `PeriodIndex` creation from list-like which contains `Period` and `NaT` (#13430)
- [x] `PeriodIndex` boxing
- [x] `.to_period`
- [x]  `__contains__` any NaT-like(`pd.NaT, None, float('nan'), np.nan`) 

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

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

``` diff
@@             master     #13609   diff @@
==========================================
  Files           142        142          
  Lines         51225      51225          
  Methods           0          0          
  Messages          0          0          
  Branches          0          0          
==========================================
- Hits          43225      43224     -1   
- Misses         8000       8001     +1   
  Partials          0          0          
```

> Powered by [Codecov](https://codecov.io?src=pr). Last updated by [20de266...9305c36](https://codecov.io/gh/pydata/pandas/compare/20de2661c8eff66e465248cbe28062eae0e0e3bb...9305c36ca536aa7877517c1cdfb9df9481a01194?src=pr)
 @sinhrks Can you rebase this? Then it will be easier to review the additional changes (as I think the first commit is now already in master?)
 @jorisvandenbossche sure. rebased.
 thanks @sinhrks this is really nice!
