Move manual events into tech controller

Migrate the timers that manage creating timeupdate and progress events when the tech doesn't support them natively. Now, techs that extend MediaTechController will continue to automatically pick up synthetic playback and buffering events but they're scoped much more closely to the entity that needs them. In addition, time and progress tracking have been moved much earlier into the component initialization which fixes #1414.

I can rebase this PR off of stable if it should be part of a patch release.
I will shed a tear for my beautiful tests but I agree it's better to get rid of that outdated browser support if it's feasible. I'll double check on the worst Android phone I can find just to be sure.