[WIP] ENH: interval accessor
- [ ] closes #16401
- [ ] tests added / passed
- [X] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

Still have a quite a few things to do, but wanted to make sure I'm on the right track, and have this PR in place to motivate any additional issues/PR that need to be done as a prereq for this.

TODO:
- Add `IntervalIndex` methods to the accessor
   - I don't immediately see any existing methods that are appropriate for this
   - There are a few open issues/PR related to methods that could be appropriate here
- Documentation
   - whatsnew entry
   - Add a section to the main docs (top level?) with examples (xref #16400)
- More tests
  - Tests for  `IntervalIndex` methods once they've been added
  - Anything else I'm missing?

Example usage:
```python
In [2]: s = pd.Series(pd.IntervalIndex.from_breaks([0, 1, 3, 6, 10]))

In [3]: s
Out[3]:
0     (0, 1]
1     (1, 3]
2     (3, 6]
3    (6, 10]
dtype: object

In [4]: s.iv.length
Out[4]:
0    1
1    2
2    3
3    4
dtype: int64

In [5]: s.iv.mid
Out[5]:
0    0.5
1    2.0
2    4.5
3    8.0
dtype: float64
```

cc @TomAugspurger : thought you'd be interested as this relates to the new extension accessor code