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.
Changed ProviderInterface for clarity:
 * Split release() into commit() and rollback()
 * Refactored to allow for 'skippable' logic to take place in the scheduler.

Changed schedules and events:
 * Schedules no longer need to hold job/task information
 * Events mush now provide an Icecave\Skew\Entities\TaskDetailsInterface

The scheduler itself has not yet been updated.
Added exceptions.
Merge pull request #1 from koden-km/feature/exceptions

Added exceptions.
Added tests for AggregateProvider.
Reused common test objects.
Partially tested BasicProvider.
Completed BasicProvider tests.
Updated scheduler to use new provider/event interfaces.
Added some tests for Scheduler.