Simplify CommonParallel

With the changes it will be possible to support a custom `TaskScheduler` in a later pull.
For this we only need to set the `ParallelOptions.TaskScheduler` property.

First I wanted to add `LimitedConcurrencyLevelTaskScheduler` but its MS-LPL license is crap.
So I thought that the user should be able to change the TaskScheduler.

Question is now: Where do we add a `TaskScheduler` property for this (e.g. to `Control` or to `CommonParallel`)?

And what is our default scheduler:
- `TaskScheduler.Default` (ThreadPool)
- `TaskScheduler.Current` (from the parent task or ThreadPool if there is no parent task)