[rbp/omxplayer] Go directly from executing to idle in OMX_Clock

OMX spec says there's no need to go through pause state
[rbp/omxplayer] Improve the player diagnostics overlay
[rbp/omxplayer] Increase audio buffering to gpu

When the arm is busy the gpu fifo can underrun, especially when audio codec uses short duration packets (like DTS)
Also increasing the packet size makes better utilisation of the audio queue inside the GPU
[rbp/omxplayer] Handle the case where EOS message fails.

When GPU fifo is full, the attempt to send the eos message may timeout. Increase the timeout and if that still fails then consider the stream to have ended.
[rbp/omxplayer] Enable zoom and pixel ratio in video OSD
[rbp/omxplayer] Need to populate channel layout for passthrough

Currently 6.1 channel dts is rejected as the channel count is zero. Fill in something plausible (it will not be used).
[rbp/omxplayer] Support both analogue and hdmi audio

Thanks to stupid-boy for the original implementation.
[rbp/omxplayer] Add Dynamic Range Compression scheme

This adds a DRC scheme. A number of dBs of amplification can be chosen.
The audio_decode component is setup to do the usual downmix operation early
before most of the audio buffering. This means we get a second or two to
detect if the downmix would overflow. This allows the amplification to be
attenuated in time to avoid the clipping.
The attenuation gradually decays when overflow condition stops.

Also adds a gui setting to boost centre channel.

Requires updated firmware
[rbp/omxplayer] Cosmetics
[rbp/omxplayer] Avoid too many calls to GPU

We currently read the media time once per packet received from demuxer to determine gpu underrun.
We've found that TrueHD audio in particular produces ~1000 packets per second (whether it is the active track or not).
The cost of reading media time (from gpu) is high enough that 1000 calls per second makes us fail to keep up.
So, cache the media time, and only read it at most 50 times per second.
[rbp/omxplayer] Avoid audio codec when in passthrough modes

There is no need to open the ffmpeg audio codec when in passthrough mode.
Also there is no need to close/open the OMXAudio component when parameters (like number of channels) change in passthough.
This avoids an unpleasant stutter
[rendercapture] Fix passthrough rendercapture interface

The RenderCapture function doesn't behave correctly for passthough video renderers,
and in fact segfaults on Pi when setting a bookmark.

There is no need to do a glReadPixels to get a video snapshot in the passthrough case,
so provide a shortcut.
[rbp] Support grabbing just the video layer through rendercapture

As the bookmark snapshot doesn't want the OSD (and neither does boblight)
allow video, or video + GUI to be selectable.

While we're there, making the GPU do the red/blue swap and stride packing saves some cpu.

Requires updated firmware
VideoRenerers: add buffering
add buffering for GLES
WinRenderer: add buffering
DXVA: activate buffering in renderer
linuxrenderer: delete all textures on reconfigure
drop frame counter in application, ask render manager instead
vaapi: adopt to buffering in renderer