MultiIndex with Period level is really slow
A MultiIndex with a Period level is multiple levels of magnitude slower to join than a same-sized single Period index, or the same sized MultiIndex with Dates instead of Periods.

In this benchmark, I construct a the multiindexes and single index referred to above by making a date/period range, and adding it to a single-value dummy column to make a trivial multiindex.

Benchmark code:

```python
import pandas as pd
from datetime import date
import numpy as np
from timeit import timeit
from numpy.random import random_integers, random_sample

periods  = pd.period_range(date(2019,1,1), date(2020,1,1), freq='min')
dates    = pd  .date_range(date(2019,1,1), date(2020,1,1), freq='min')
people = [1]

singlePeriodIndex = periods
multiPeriodIndex = pd.MultiIndex.from_product([periods, people])
multiDateIndex = pd.MultiIndex.from_product([dates, people])

print(f"singlePeriodIndex size: {len(singlePeriodIndex)}")
print(f"multiPeriodIndex size: {len(multiPeriodIndex)}")
print(f"mnultiDateIndex size: {len(multiDateIndex)}")
indexSize = len(singlePeriodIndex)

Counts = random_integers(0, 100, size=indexSize)
TotalSales = random_sample(size=indexSize) * 1000

def join_two_frames(index: pd.Index):
    data = pd.DataFrame(data={'Counts': Counts}, index=index)
    data2 = pd.DataFrame(data={'TotalSales': TotalSales}, index=index)

    return data.join(data2)

print(f" Time for 3 × single period index: {timeit(lambda: join_two_frames(singlePeriodIndex), number=3)}s")
print(f" Time for 3 × multi period index: {timeit(lambda: join_two_frames(multiPeriodIndex), number=3)}s")
print(f" Time for 3 × multi date index: {timeit(lambda: join_two_frames(multiDateIndex), number=3)}s")
```

```
# results from my PC:
singlePeriodIndex size: 525601
multiPeriodIndex size: 525601
mnultiDateIndex size: 525601
 Time for 3 × single period index: 0.07404399762210523s
 Time for 3 × multi period index: 203.1650731925208s
 Time for 3 × multi date index: 0.20330959270341964s
```

This is on my Windows 10 PC, but I observed similar on an Ubuntu PC running the same versions of libraries as below (my env is set up by pipenv).

#### Output of ``pd.show_versions()``

<details>

```
INSTALLED VERSIONS
------------------
commit           : None
python           : 3.6.4.final.0
python-bits      : 32
OS               : Windows
OS-release       : 10
machine          : AMD64
processor        : Intel64 Family 6 Model 69 Stepping 1, GenuineIntel
byteorder        : little
LC_ALL           : None
LANG             : en_GB.UTF-8
LOCALE           : None.None

pandas           : 0.25.0
numpy            : 1.16.4
pytz             : 2019.1
dateutil         : 2.8.0
pip              : 19.1.1
setuptools       : 41.0.1
Cython           : None
pytest           : None
hypothesis       : None
sphinx           : None
blosc            : None
feather          : None
xlsxwriter       : None
lxml.etree       : None
html5lib         : None
pymysql          : None
psycopg2         : None
jinja2           : 2.10.1
IPython          : 7.6.1
pandas_datareader: None
bs4              : None
bottleneck       : None
fastparquet      : None
gcsfs            : None
lxml.etree       : None
matplotlib       : 3.1.1
numexpr          : None
odfpy            : None
openpyxl         : None
pandas_gbq       : None
pyarrow          : None
pytables         : None
s3fs             : None
scipy            : 1.3.0
sqlalchemy       : None
tables           : None
xarray           : None
xlrd             : None
xlwt             : None
xlsxwriter       : None
```
</details>
