ENH: Implement linspace behavior for timedelta_range and interval_range
- [X] closes #20976
- [X] tests added / passed
- [X] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [X] whatsnew entry

Summary:
- added linspace behavior support to `timedelta_range`
- added linspace behavior support to `interval_range`
    - refactored `test_interval_range.py` to use `parametrize`; split up some tests
- added a check to `bdate_range` to ensure that `freq` is specified
    - doesn't really make sense to support linspace behavior since `bdate_range` implies a frequency
    - same underlying code as `date_range`; could get linspace behavior by overriding `freq` to `None`
- updated and cleaned docstrings for all `*_range` functions except `period_range`