Taskscheduler refactoring

* refactored task scheduler architecture
* added new schedulers

details:
* 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 is not of type BaseScheduler ...)

renamed schedulers
* 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)