ScheduleController refactor
Created by: dsparacio
When looking at issue #1205 (closed) I was seeking a lot and found some other issues. Number 4 below was the main one. But then I realized we had some logic issues and no need to use RulesContoller for scheduling anymore so I refactored it.
- Reduces complexity of schedule controller by removing BufferLevelRule and NextFragmenRequestRule from the concept of RuleController and callbacks. This should only be applied for ABR. Now it does it inline. Runs ABR and gets Next Fragment.
- This revealed a bug. We were calling getNextFragment() in callback of ABRController. It was meant to be called after ABR ran not before. This could introduce a race so it was fixed.
- Removes ScheduleRulesCollection completely.
- Removes all the functionality in RuleController to set and remove rules since we do not allow that any more.
- Added fix for segment timeline if you seek to end and single complete is triggered then see back we should be start should be called again in schedule controller.