BUG: Index.__new__ with Interval/Period data and object dtype
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

xref #17246, #21311

After this we now use the same pattern when calling DatetimeIndex, TimedeltaIndex, PeriodIndex, and IntervalIndex, so we can make a helper function and de-duplicate this code.

The cases of categorical or range data with object-dtype are not yet handled.