API: Index doesn't results in PeriodIndex if Period contains NaT
- [x] tests added / passed
- [x] passes `git diff upstream/master | flake8 --diff`
- [x] whatsnew entry

This improve `Period` handling a little.
- normal `Index` constructor can accept:
  - `Period` and `NaT` mixed input (result is `PeriodIndex`) `Period` version of #13477)
  - `Period` with multiple freq (result is `object` dtype)
- `PeriodIndex.fillna` can accept `Period` with different freq (result is `object` dtype)

The below describes the behavior on current master

```
# this should be PeriodIndex
pd.Index([pd.Period('2011-01', freq='M'), pd.NaT])
# Index([2011-01, NaT], dtype='object')

# this should be object dtype
pd.Index([pd.Period('2011-01', freq='M'), pd.Period('2011-01-01', freq='D')])
# pandas._period.IncompatibleFrequency: Input has different freq=D from PeriodIndex(freq=M)

# this should be object dtype
pd.PeriodIndex(['2011-01', 'NaT'], freq='M').fillna(pd.Period('2011-01-01', freq='D'))
# pandas._period.IncompatibleFrequency: Input has different freq=D from PeriodIndex(freq=M)
```
