[CB] Refactor: extract common scheduling logic into Scheduler base class (#43237)
* Refactor: extract common scheduling logic into Scheduler base class
* Rebase: adapt scheduler refactor to latest upstream changes
* Fix Scheduler.schedule_batch return type
* Refactor scheduler: default safety_margin to 0.0
* Run make style
---------
Co-authored-by: Rémi Ouazan <83456801+remi-or@users.noreply.github.com>