[rbp/omxplayer] Move buffering to omxplayer level

We wait to pause the clock when the queue of audio data to GPU is dangerourly low to avoid stuttering audio.
Better to pause for a few seconds and then play some intelligible audio, than to continuously underrun.
[rbp/omxplayer] Move the buffer of the decoded audio to output port

The buffers between host and gpu components are duplicated, so 2 seconds of 8 channel 48kHz audio requires 3MB.
That memory is required on both host and gpu. We want this buffering to provide protection from underrun when the arm is busy.

By moving the majority of the buffering from omx_decoder's input to output port, we save that memory on the arm.
Also the output port is 16-bit integer, rather than float, so we halve the size in addition.
[rbp/omxplayer] Support frame advance (single step) with right arrow when paused
[rbp/omxplayer] Remove unsused function OMXStart
[rbp/omxplayer] Remove clock manipulation from a/v players
[rbp/omxplayer] Move start flags out of clock component

Keep track of start flags locally. I believe the behaviour is unchanged.
[rbp/omxplayer] Remove flush of video codec when audio codec changes

I believe this was added to work around a race condition that is no longer present.
It discards video and results in a corruption until the next I frame.
[rbp/omxplayer] Reduce the size of preroll

The preroll defines how much earlier the clock starts compares to timestamps of audio/video.
This needs enough time for GPU side worst video/audio decode/schedule/render.
This should never be more than 200ms.

This makes playback start and seeks 600ms more responsive which is noticable when seeking through a video.
Revert "[rbp] Always use the aspect ratio from file."

This reverts commit 7f5d3ede514f30552e42464c29227d570b38ed8a.
[rbp/omxplayer] Use aspect ratio from video decoder

We don't get a valid aspect ratio from tvheadend with mpeg2 files, but the decoder does know, so use that
[rbp/omxplayer] Check total memory, and if plenty use full size buffers

omxplayer has used a quarter sized video buffer and a half sized audio buffer for the file reading message queue, compared to dvdplayer.
This is required on 256M boards, but is unneccessary on 512M board. So we query the memory size and use full size buffers if possible.
[rbp/omxplayer] Use timestamps given to gpu as GetCurrentPts

Currently the timestamps gpu is using and those returned from GetCurrentPts can diverge, makeing the buffering decision incaccurate.
Make sure they use the same timestamps by bringing the timestamp code up from OMXVideo to OMXPlayerVideo.
[rbp/omxplayer] More care with marking GetCurrentPts as invalid
[rbp/omxplayer] Add debug logging for when audio/video EOS is first detected
[rbp/omxplayer] It never makes sense to delay in audio/video players

We are not synchonous with frames submitted so sleeping won't help anything
[rbp/omxplayer] Do we need discontinuity handling?

So far I've not seen what this is needed for and it does cause problems for some files.