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

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.
Ack.  Looks like I didn't update the doc strings.  Will push fixes in a moment.