The base class of thread-scheduler. It allows a certain maximum
number of threads to running, queuing any requests beyond that. An
items is dequeued when a running thread stops. The maximum is per
thread-service, not global. This scheduler is not used by default
(the PropagatingScheduler extension is the default).