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.
Is this for the salt scheduler or for cron?