Improve resilience of volume change.

Building on the previous fix for the audio volume jumps experienced
when switching tracks, this adds a double check that the underlying audio
layer has actually set the volume to the new value. This may fail because
the COMXAudio object it not yet initialised.

If there is a failure, then the volume change is retried in the next
iteration of COMXPlayer::Process().
Merge pull request #2909 from sgebbie/master

[rbp/omxplayer] Volume Jump Fix
[rbp/omxplayer] Fix build error from #2909

(sorry should have spotted this)
Merge pull request #2910 from popcornmix/fix_volume_fix

[rbp/omxplayer] Fix build error from #2909
Fix memory leak and a failed ASSERT under win32 Debug build. A string was being double-strdup'ed, causing delete[] to fail when deleting the copy from the different heap instead of the local one.

Tracking down the assert to dbgheap.c gives the following message:
> a bad pointer has been passed in. It may be totally bogus, or it may have been allocated from another heap. The pointer MUST come from the 'local' heap.
Find external audio files, open corresponding inputStreams and store them.
Open demuxers for external audio files. Update the SelectionStream. Adapt all relevant places where m_pDemuxer is used; in particular ReadPacket(...) and add ReadExternalAudioPacket(...)
Adapt DVDFileInfo so that it reads infos also from external audio files (e.g. language and channels).
Only apply Seek and SetSpeed to the actually active external demuxer to speed things up.
Fix seeking chapters while having an ext. audio track selected.
(External) audio tracks don't have chapters, so we have to use SeekTime().
[AdvancedSettings] Add m_subtitleExtensions.
[Util] Generalize external subtitle retrieval method(s).

Add void CUtil::GetPathsToLookForAssociatedItems()
Add void CUtil::ScanPathsForAssociatedItems(...)
Add int CUtil::ScanArchiveForAssociatedItems()
[Util] Make use of generalized ScanForExternalSubtitles(...) methods.
ScanForExternalSubtitles(...) now uses GetPathsToLookForAssociatedItems() and ScanPathsForAssociatedItems(...).
[Util] Remove obsolete method ScanArchiveForSubtitles() and sub_exts[].
[Util] Adapt ScanForExternalAudio(...) to use the generalized methods.
ScanForExternalAudio(...) now uses GetPathsToLookForAssociatedItems() and ScanPathsForAssociatedItems(...). ScanArchiveForAudio(...) is removed.
[Util] Add Doxygen comment for ScanForExternalAudio(...)
[DVDPlayer] Cosmetics part 1.
[DVDPlayer] Simplify ReadPacket(...).
[DVDPlayer] Test elupus' idea.
[DVDPlayer] Use "master" demuxer.