`Scheduler` is an abstract class which defines methods such as `create_schedule`, `start_schedule`, etc. Each instance of a `Scheduler` stores a list of `RunSchedule`s
Two implementations of `Scheduler` included are:
- `TestScheduler` - works entirely in memory and does not implement starting and stopping schedules (just creating and removing them)
- `SystemCronScheduler` - saves schedules to a file, and uses cron to start and stop schedules.