PrioritizeDatesService now uses the LinearDateList
extracted prioritizing steps to separate classes and fixed some possible NullPointerException which might occur when iterating and modifying the LinearDateList