Revert "Subtitles: Avoid changing subtitle state in the decoder thread."

This reverts commit 5a26ce90f5f48495597b451630e3a16a3af5f4ee.

The problem is that calling EnableSubtitles(false) after a seek
unconditionally disables subtitles, instead of clearing stale
subtitles from the screen.
Subtitles: Avoid changing subtitle state in the decoder thread.

This addresses the clearing of stale subtitles after a seek.
Refs #10740.
Make seeks faster for slow decoders / large keyframe distances.

Exact seeking for HD-PVR recordings can be notoriously slow because
the keyframe distance is 128 frames and decoding (even GPU hardware
decoding) is often little faster than real-time.

In most cases, it's a much better user experience to make a less
accurate but much faster seek to the preceding keyframe.

There are two changes:

1. Impose a maximum wall-clock time on the forward frame-by-frame
seeking.  After this maximum time elapses, abort any further frame
seeking.

2. In addition, try to predict whether fully accurate seeking will
complete within a reasonable time, and if after a few frames it seems
hopeless, just don't bother seeking any further.

This approach allows fast decoders and video formats amenable to fast
decoding to continue to have exact seeking.

Fixes #12004.