A scheduler is the core component of the library; you add jobs to the job scheduler, and then it will execute these according to the job's schedule.
A job scheduler which offers additional functionality for modifying the set of scheduled jobs after they're submitted.
A pairing of a Job with a JobSchedule that tells it when to execute. This is the basic operational unit that JobSchedulers will deal with.
Defines the scheduler interface, and a simple thread-based implementation of the scheduler.