[rbp/omxplayer] Fix audio sync with visualisation

As GPU can buffer a few seconds of audio, and the visualisation is updated immediately, they are badly out of sync.
The solution is to push the visualisation data through a queue, and retrieve it from queue when the media time is reached.
[rbp/omxplayer] Avoid flushing fifos when audio/video fifos out of sync

This was intended to be a never happens event that could reset the state when something bad happens.
However it does trigger in some reasonable cases (like audio codec change) and makes things worse.
[rbp/omxplayer] Support frame advance with right arrow when paused

It seems this is desired behaviour for xbmc, and works okay on Pi, so enable it.
[rbp/omxplayer] Apply deinterlace changes immediately

Currently on Pi the deinterlace state is only sampled when opening the player.
This means to change deinterlace settings, you need to change in the video OSD then manually quit and restart the video.
This commit detects a change in current deinterlace settings and closes and opens the video player which applies the setting.

For seekable streams, seeking to "now" makes the video restart quicker.
Without the seek, the video does reappear, but takes a number of seconds
Merge pull request #3070 from popcornmix/immediate_deinterlace

[rbp/omxplayer] Apply deinterlace changes immediately
Merge pull request #3069 from popcornmix/frame_advance

[rbp/omxplayer] Support frame advance with right arrow when paused
Merge pull request #3068 from popcornmix/avoid_flush_sync

[rbp/omxplayer] Avoid flushing fifos when audio/video fifos out of sync
Merge pull request #3049 from popcornmix/visualisation_sync

[rbp/omxplayer] Fix audio sync with visualisation
python: move more logic from XBPython to CPythonInvoker