An AsyncScheduler schedules tasks to happen in the future with the
given ScheduledExecutorService and the tasks themselves are executed on
the given ExecutionContext.
Specification for run-loops, imposed by the Scheduler.
An ExecutorScheduler is for building a
Scheduler out of a ScheduledExecutorService.
A scheduler meant for testing purposes.