simplify algebra in Year offset apply methods
This PR is careful to only touch YearEnd and YearBegin classes, so should not overlap with #18263 or #18278.  But like 18278, once the algebra is simplified, it looks an awful lot like 18263.

The bad news is that the process of simplifying the dynamically-defined `_increment, `_decrement, `_rollf` functions is no fun, and I'm not aware of any good way to "show your work" to walk through the in-between steps.

- [ ] closes #xxxx
- [ ] tests added / passed
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry
