Add Signal.throttle

Implements the behavior proposed in #1396.
Add RepeatableScheduler conformance to QueueScheduler
Move date scheduling into DeferrableScheduler type

Don’t allow scheduling after particular dates on the ImmediateScheduler.
Add TestScheduler
:fire: currentScheduler :fire:

It’s always been a total hack. Just don’t use it.