WIP: implement period_helper in cython
Tests pass locally, haven't run asv yet.  Lots of cleanup to do; function names are retained, use camelCase.  A bunch of functions overlap with ccalendar (even more so if we remove the unused non-GREGORIAN_CALENDAR case)

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