Implement small, easy bits of other PRs
Several PRs are currently in limbo with ongoing discussion.  This separates out relatively easy pieces.
Hello @jbrockmendel! Thanks for submitting the PR.

 - There are no PEP8 issues in the file [`pandas/core/arrays/datetimelike.py`](https://github.com/jbrockmendel/pandas/blob/44548291070f9284f55766c0837e8aa71d6fd565/pandas/core/arrays/datetimelike.py) !

 - There are no PEP8 issues in the file [`pandas/core/arrays/period.py`](https://github.com/jbrockmendel/pandas/blob/44548291070f9284f55766c0837e8aa71d6fd565/pandas/core/arrays/period.py) !

 - There are no PEP8 issues in the file [`pandas/core/arrays/timedeltas.py`](https://github.com/jbrockmendel/pandas/blob/44548291070f9284f55766c0837e8aa71d6fd565/pandas/core/arrays/timedeltas.py) !

 - There are no PEP8 issues in the file [`pandas/core/frame.py`](https://github.com/jbrockmendel/pandas/blob/44548291070f9284f55766c0837e8aa71d6fd565/pandas/core/frame.py) !

 - There are no PEP8 issues in the file [`pandas/core/indexes/datetimelike.py`](https://github.com/jbrockmendel/pandas/blob/44548291070f9284f55766c0837e8aa71d6fd565/pandas/core/indexes/datetimelike.py) !

 - There are no PEP8 issues in the file [`pandas/core/indexes/datetimes.py`](https://github.com/jbrockmendel/pandas/blob/44548291070f9284f55766c0837e8aa71d6fd565/pandas/core/indexes/datetimes.py) !

 - There are no PEP8 issues in the file [`pandas/core/indexes/period.py`](https://github.com/jbrockmendel/pandas/blob/44548291070f9284f55766c0837e8aa71d6fd565/pandas/core/indexes/period.py) !

 - There are no PEP8 issues in the file [`pandas/core/indexes/timedeltas.py`](https://github.com/jbrockmendel/pandas/blob/44548291070f9284f55766c0837e8aa71d6fd565/pandas/core/indexes/timedeltas.py) !

 - There are no PEP8 issues in the file [`pandas/core/ops.py`](https://github.com/jbrockmendel/pandas/blob/44548291070f9284f55766c0837e8aa71d6fd565/pandas/core/ops.py) !

 - There are no PEP8 issues in the file [`pandas/core/sparse/frame.py`](https://github.com/jbrockmendel/pandas/blob/44548291070f9284f55766c0837e8aa71d6fd565/pandas/core/sparse/frame.py) !

 - There are no PEP8 issues in the file [`pandas/io/pytables.py`](https://github.com/jbrockmendel/pandas/blob/44548291070f9284f55766c0837e8aa71d6fd565/pandas/io/pytables.py) !

 # [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/23173?src=pr&el=h1) Report
> Merging [#23173](https://codecov.io/gh/pandas-dev/pandas/pull/23173?src=pr&el=desc) into [master](https://codecov.io/gh/pandas-dev/pandas/commit/aaa69d1bb6ed2539f2dbdba842d83a2f90860aa0?src=pr&el=desc) will **increase** coverage by `<.01%`.
> The diff coverage is `78%`.

[![Impacted file tree graph](https://codecov.io/gh/pandas-dev/pandas/pull/23173/graphs/tree.svg?width=650&token=eZ4WkYLtcO&height=150&src=pr)](https://codecov.io/gh/pandas-dev/pandas/pull/23173?src=pr&el=tree)

```diff
@@            Coverage Diff             @@
##           master   #23173      +/-   ##
==========================================
+ Coverage   92.19%   92.19%   +<.01%     
==========================================
  Files         170      169       -1     
  Lines       50963    50957       -6     
==========================================
- Hits        46984    46979       -5     
+ Misses       3979     3978       -1
```

| Flag | Coverage Δ | |
|---|---|---|
| #multiple | `90.61% <78%> (ø)` | :arrow_up: |
| #single | `42.29% <48%> (-0.01%)` | :arrow_down: |

| [Impacted Files](https://codecov.io/gh/pandas-dev/pandas/pull/23173?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [pandas/core/arrays/base.py](https://codecov.io/gh/pandas-dev/pandas/pull/23173/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvYXJyYXlzL2Jhc2UucHk=) | `95.94% <ø> (ø)` | :arrow_up: |
| [pandas/util/testing.py](https://codecov.io/gh/pandas-dev/pandas/pull/23173/diff?src=pr&el=tree#diff-cGFuZGFzL3V0aWwvdGVzdGluZy5weQ==) | `86.45% <ø> (ø)` | :arrow_up: |
| [pandas/tseries/frequencies.py](https://codecov.io/gh/pandas-dev/pandas/pull/23173/diff?src=pr&el=tree#diff-cGFuZGFzL3RzZXJpZXMvZnJlcXVlbmNpZXMucHk=) | `97.08% <ø> (ø)` | :arrow_up: |
| [pandas/core/accessor.py](https://codecov.io/gh/pandas-dev/pandas/pull/23173/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvYWNjZXNzb3IucHk=) | `98.79% <ø> (ø)` | :arrow_up: |
| [pandas/core/sparse/frame.py](https://codecov.io/gh/pandas-dev/pandas/pull/23173/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvc3BhcnNlL2ZyYW1lLnB5) | `94.86% <100%> (ø)` | :arrow_up: |
| [pandas/core/arrays/datetimelike.py](https://codecov.io/gh/pandas-dev/pandas/pull/23173/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvYXJyYXlzL2RhdGV0aW1lbGlrZS5weQ==) | `94.89% <100%> (ø)` | :arrow_up: |
| [pandas/core/indexes/datetimelike.py](https://codecov.io/gh/pandas-dev/pandas/pull/23173/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvaW5kZXhlcy9kYXRldGltZWxpa2UucHk=) | `98.25% <100%> (+0.02%)` | :arrow_up: |
| [pandas/core/arrays/timedeltas.py](https://codecov.io/gh/pandas-dev/pandas/pull/23173/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvYXJyYXlzL3RpbWVkZWx0YXMucHk=) | `94.47% <100%> (+0.5%)` | :arrow_up: |
| [pandas/core/frame.py](https://codecov.io/gh/pandas-dev/pandas/pull/23173/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvZnJhbWUucHk=) | `97.11% <100%> (ø)` | :arrow_up: |
| [pandas/core/indexes/timedeltas.py](https://codecov.io/gh/pandas-dev/pandas/pull/23173/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvaW5kZXhlcy90aW1lZGVsdGFzLnB5) | `90.65% <100%> (-0.12%)` | :arrow_down: |
| ... and [15 more](https://codecov.io/gh/pandas-dev/pandas/pull/23173/diff?src=pr&el=tree-more) | |

------

[Continue to review full report at Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/23173?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/23173?src=pr&el=footer). Last update [aaa69d1...8d55395](https://codecov.io/gh/pandas-dev/pandas/pull/23173?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).
 @jorisvandenbossche at your convenience pls take a look and see if we can exclude this from the "hold off on merging" thing.  I think getting this stuff out of the way will make things easier in the other PRs. I don't have time now to look in detail, can only do that tomorrow evening. 

Although the changes are probably all more or less fine, I still would like to hold off until we agree on a way forward, unless @TomAugspurger explicitly agrees on merging this (also simply moving things out of the PeriodArray PR can give horrible rebases for that PR. So even though it can make the diff there smaller, it doesn't necessarily make it easier to move that PR forward) If it's counter-productive to the stated goal, then let's leave this on the back-burner.