ENH: Add dtype parameter to IntervalIndex constructors and deprecate from_intervals
- [X] closes #19262
- [X] closes #19263
- [X] tests added / passed
- [X] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [X] whatsnew entry

Summary:
- Added support for a `dtype` parameter to all IntervalIndex constructors
   - Allows users to override the inferred dtype
- Deprecated `IntervalIndex.from_intervals`
   - Still added `dtype` parameter, since it's just a pass through to `IntervalIndex`
   - Removed usage and references to `IntervalIndex.from_intervals` throughout the codebase 
- Split construction tests off into `interval/test_construction.py`
   - Created a base class for common tests, and subclasses for each constructor
   - Was previously written in a more flat style, where each constructor was explicitly called
   - Expanded the tests to hit some previously untested behavior