ffmpeg: restore invalid vda_frame definition

Upstream has it this way already, no idea how this ended up changed.
dvdplayer: support vda decoding using ffmpeg hwaccel infrastructure

This removes the requirment that width/height have to be known before
hand, as well as avoid need to extract extradata before hand.
vda: simplify presentation order calculation

Instead of keeping track of timestamp when added which is shaky at best
just put them at the end of the ouput queue. This should fully equal
old logic when we are always missing pts and likely be better when
pts is sporadic.
vda: replace sort time timestamp with counter

Timestamps can end up equal between two samples.
vda: increase re-order queue size to minimum 5 and based on ref frames

We must always have at least the number of reference frames to guaranteee
output in correct frame order.
vda: don't request buffer until we are sure queue depth is below limit

This avoid queue building up due to late output from decoder.
vda: allow queuing to be used
Add URIUtils::HasExtension(..) functions
Use the new HasExtension(..) function
Cleanup IDirectory::IsAllowed(..)
Merge pull request #2745 from Rawk/add_HasFileExtension

Add URIUtils::HasExtension(..)
vda: GetPicture return bool
Merge pull request #2845 from elupus/vda

Vda decoding fixups
Merge pull request #2847 from elupus/vda_ffmpeg

Vda ffmpeg
[Settings] Make Settings level lockable
[Settings] Treat 'Set as default' in CGUIDialogXXXSettings as basic level