PERF: Using _Period for optimization
- [ ] closes #xxxx
- [ ] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

---
I did two bench marks one in a tight loop(```%timeit```), and one with asv.

I don't see a significant performance change (but I'm not sure I read the output correctly), maybe worth just removing the "TODO" note.

---

#### Benchmarks:

##### Timeit:

```
In [1]: import pandas as pd                                                                                   

In [2]: idx = pd.period_range("2000-01-01", periods=3)                                                        

In [3]: %timeit idx.get_loc(idx[1], "pad") 
337 µs ± 15 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each) # Master
338 µs ± 7.16 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each) # PR
```

##### ASV (period.Indexing)

```
       before           after         ratio
     [f20331d5]       [f71bf172]
     <master>         <PERF-index-_Period>
      1.46±0.02ms      1.45±0.03ms     0.99  period.Indexing.time_align
       8.57±0.2μs       8.51±0.2μs     0.99  period.Indexing.time_get_loc
         512±30μs          506±3μs     0.99  period.Indexing.time_intersection
         30.6±2μs       30.8±0.3μs     1.01  period.Indexing.time_series_loc
       3.95±0.3μs      3.96±0.02μs     1.00  period.Indexing.time_shallow_copy
       87.9±0.5μs       88.5±0.6μs     1.01  period.Indexing.time_unique
```