[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] 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
[rbp/omxplayer] No need for two debug messages per component init
Merge xsp_sql_optims branch from Montellese
[CEC] Fix occasional deadlock when booting
[rbp/omxplayer] Add wait to port enables/disables
[rbp/omxplayer] Avoid hiding some unexpected error conditions
[rbp/omxplayer] Remove component locking

The OMX library is thread safe.

If we need to provide atomicity of groups of accesses, then that is done at the higher level
(e.g. OMXAudio), so remove the lock from the lowest level
[rbp/omxplayer] Add caching of states to reduce number of round trip delays to GPU
Revert "[rbp/omxplayer] Add caching of states to reduce number of round trip delays to GPU"

This reverts commit d5757aab45d20ad2dd9b9c49c881e3a4ae3347d6.
[rbp/omxplayer] Ignore expected errors when tearing down audio