make sure we can also abort the open of a ffmpeg input stream
reevaluate HasVideo/Audio after a stream change
Fix elapsed time not updating near end of file

Currently, once demuxer has reached EOF, we send the EOF messages to audio/video players
and set their inited/started flags to false. But if started is false we ignore any
PLAYER_DISPLAYTIME coming back from players, which stops the elapsed time from updating.
This can affect the final ~8 seconds of the file.

The fix delays changing these flags until audio/video players have signalled EOS.
Fix audio volume jumps when switching tracks

When the global volume has been set low, and a sequence of tracks are being played, there are complaints of occasional jumps to full volume.
This is down to a race condition where the volume request can arrive at OMXAudio before it has been initialised.
The fix is simple, don't send the volume change until m_CurrentAudio.started.