Cleaning yearly, quarterly and monthly date offsets
- Ability to use `YearBegin` and `QuarterBegin` DateOffset classes as Period `freq`, along with offset aliases.
- Ability to use three-letter month short names as `month` / `startingMonth` arguments of year- / quarter-based offset classes (as already used in their `_from_name` class method).
- Expanded docstrings with, e.g., additional examples.
- Partial refactorization, as a step toward combining `QuarterOffset` and `YearOffset` `__init__` (mentioned as TO DO in the code).

- [ ] xref #38859
- [ ] tests added / passed
- [ ] Ensure all linting tests pass, see [here](https://pandas.pydata.org/pandas-docs/dev/development/contributing.html#code-standards) for how to run them
- [ ] whatsnew entry
