Implement conditional fan-out scheduling for HybridScheduler
In !470 (closed) the HybridScheduler is run with least-slack-time priority and MaxFanOut tie-breaker.
When this has been completed (and some kind of flag is passed by the user) the algorithm could be re-run with MinFanOut as tie-breaker.
If the scheduling time of the second run is not degraded then the second schedule should be used.
Hopefully, this will on average reduce the amount of memory variables used since running large fan-out operations later could lead to a reduction in shimming-delays.