Extract abstract class ListScheduler from EarliestDeadlineScheduler
In the future, we want to have multiple variations of a list scheduler.
Thus, it would be nice to extract and abstract ListScheduler that can be inherited by EarliestDeadlineScheduler and other list-based schedulers.