Revision of design:
 * Replaced ScheduleInterface::id() with SchedulerInterface::name()
 * Removed ScheduleInterface::isEnabled() / setEnabled().
 * Added $now to ProviderInterface::release() and reload().
 * Abstracted more logic of Scheduler into private methods.
 * Added support for SIGINT (ctrl-c) handling.
 * Various improvements to log messages in Scheduler
 * Changed default schedule reload interval from 5 minutes to 10 minutes.