Changes to schedule.modify to show a diff of what has changes when a scheduled job is updated.  Also some cleanup of duplicated code between add and modify, now moved into a common build_schedule_item function.  Some additional cleanup and the initial work on a state to manage scheduled jobs.
lint fixes
fixing docstrings.
Merge pull request #13645 from garethgreenaway/schedule_state

Updates to schedule.py module and initial work to add a state to manage scheduled jobs