fix start of week determination to avoid first interval being incorrectly offset
correctly determine start of week repetition point to avoid issues with weekly intervals higher than 1 always counting the first week after start date
added a method to force the provided start date to the first occurence

refactored date component extraction logic for reuse
Merge branch 'fix-first-intervals' into all-custom-extensions
Merge branch 'start-date-adjustment' into all-custom-extensions