Cleanup who does what among stat/stop/reset
Cleanup who does what among stat/stop/reset

start: Is now responsible for reseting initial times to ensure correct
reference times. This and initial scheduling should only run if not already
scheduling.

stop: Only needs to cancel the scheduling and null the updateId

reset: Just needs to call stop() and set(0, inf)

adamcik/media-progress-timer,adamcik/media-progress-timer