[rbp/omxplayer] Restructure COMXImage

Tidy up of COMImage. Separate into file reading, encode and decode classes with separate locks.
This allows some overlap of functionality which improves the speed.
[rbp/omxplayer] Fix wait at end of encode and decode
[rbp/omxplayer] Remove component locking

We always need to have a higher level lock to provide atomicity of groups of accesses,
so remove the lock from the lowest level
[rbp/omxplayer] First attempt at a jpeg thumbnail pipeline
[rbp/omxplayer] First attempt at decode to texture
[rbp/omxplayer] Remove tunnel flushes

A tunnel flush flushes the ouput port of the source component and the input port of the dest component.
However the code already flushes all the ports of components, so many ports are flushed twice.

Remove the tunnel flush API and just flush component ports
[rbp/omxplayer] Make disabling ports optional

We typically don't want to disable ports after establishing a tunnel, so make this optional and default to false.
[rbp/gui] Add switch between higher and lower quality textures

To save memory we default to 16bpp textures,
but provide a GUI option to increase that to 32bpp.
[rbp/gui] Add switch to remove GUI 720p limit
Merge xsp_sql_optims branch from Montellese
[rbp/omxplayer] No need for two debug messages per component init