API: Implement set_freq for DTI/TDI, deprecate freq setter
- [X] closes #20886
- [X] tests added / passed
- [X] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [X] whatsnew entry

Summary:
- Follow-up to #20772
  - See that PR for relevant discussion
- Implements a `set_freq` method for `DatetimeIndex` and `TimedeltaIndex`
- Deprecates the `freq` setter for `DatetimeIndex` and `TimedeltaIndex`
   - Had to change some instances of the DTI/TDI implementation to directly set the `_freq` attribute
   - Had to modify some tests to use `set_freq` instead of the setter
   - Didn't see any related deprecation warnings in the logs from the CI runs hooked to my local repo


cc @jreback @jorisvandenbossche 