Fix Dereference after null check

Coverity #746811
Code cleanup.

If we enter this loop, type must be equal to MPEG2.

Coverity #746801
Accrue time adjustments for HLS recorder.

4f645a870b974b367b011973b5b826f5cc5f5e39 improved HLS recording greatly, however didn't cater in case the HLS ringbuffer took a long time (like when it's rebuffering), Adjust logic to accrue the time differences and adjust waiting time accordingly
Make WantingPlayback work when more than one registered client exists in the same thread.

Connection to registered playback clients are created using Qt::BlockingQueuedConnection, which will deadlock if running within the same thread.
Add InWantingPlayback methods, to determine if interrupted signal was received while in the process of starting new playback

Part of fix for #11671
Remove dispatchNow() and all that uses it, re-implementing using thread-safe methods.

dispatchNow was marked has obsoleted years ago but was still in use. Should any listeners be in a different thread, it would have crashed (like starting playback when a preview generation was occurring)
Replaces the only two methods still using this mechanism: sendPlaybackStart and sendPlaybackEnd with their thread-safe equivalent. MythMusic will have to be adapted, changes to follow

Fixes #11671
Add CoreContext::TVInWantingPlayback method

MythMusic resumes music playback when exiting TV Playback, however we don't want it to resume should TV playback be interrupted by another player (for example AirPlay)