parametrize offsets tests
This began as part of #18489 and quickly became huge and tedious.  Merits separating out and getting out of the way.

- Move Year, Quarter, and Month offset test cases to a dedicated file

- Implement pytest.mark.parametrize in very-nearly all the remaining places.