Feature/scheduler refactoring

(1) refactored task scheduler architecture
(2) added schedulers

in detail:
(1) 
removed resizing of task pool at runtime (prohibitively complex when implementing new schedulers and error prone). Consequently removed TaskPoolAdjustment Operator

removed setting queue as template parameter to scheduler, as most schedulers worked only with a specific queue. Queue is now a compositio. This also makes inheritance hierarchies of queues and schedulers easier (as DerivedScheduler<DerivedQueue> is not of type BaseScheduler<BaseQueue> ...)

renamed schedulers

(2)
Central Scheduler: basically a threadpool with a global queue

CentralPriorityScheduler: a threadpool with a global priority queue

CoreBoundPriorityQueueScheduler: like the CoreBoundScheduler, just thread local priority queues

WSCoreBoundPriorityScheduler: like CoreBoundPriorityQueueScheduler, just with Workstealing (we only steal when queue is empty -> a local queue might work on low priority tasks even if another queue has higher priority tasks waiting)