[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] Replace jpeg parsing with cheaper byte aligned accesses

All the parsing is byte aligned. This function is about ten times faster with this patch
[rbp/omxplayer] Fix bugs with jpeg parsing

I was finding GetCodingType to sometimes take 200ms for a single jpeg.
That was a mixture of the slow bit oriented parsing, and more significantly some bugs.
The SOF blocks skipped the wrong number of bytes, meaning we ended up parsing junk.
The M_TEM, M_DRI, M_SOI and M_EOI tags when seen (usually due to the junk) can only escape by slowly parsing until end of file.
Also, after a M_SOS, there is the variable sized jpeg block which we can't parse, so best to give up then, rather than misparsing the jpeg data
[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/omxplayer] Reset more state variables on Initialize

The component shouldn't remember any state from before the Initialize
[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] Detect bitstream corrupt and reject CMYK jpegs