rework clock reset when flushing + decoder/vout improvments
The first step of fixing #25694 (closed) requires to not reset the clock while the output can still use it, that is a small moment after the input send the flush request.
This means that the main clock reset need to be moved from the initial flush command (EsOutChangePosition()) to the flush ACK (EsOutDecodersStopBuffering()).
The last commit is doing this change. The first 5 commits are ensuring that the clock is never used to convert new pts (from post flush frames) before EsOutDecodersStopBuffering() is called.