CharsetConverter: add internal class CInnerConverter and move local static function to it
CharsetConverter: 'static' for all functions
CharsetConverter: define and implement class ConverterType
CharsetConverter: rewrote, use individual locks for each conversion type
CharsetConverter: use standard conversion for utf8ToSystem
CharsetConverter: add individual charset reset functions and reset charsets AFTER new settings are applied
CharsetConverter: do not skip last zero if original string have it at end
CharsetConverter: cleanup for iconv and refactoring for iconv_const
CharsetConverter: FriBiDi cleanup
CharsetConverter: Cleanup: remove 'using std'
[rbp/omxplayer] Fix stall on seek with deinterlace

Need to flush image_fx input port when seeking - this got lost in #3397
[rbp/omxplayer] Add high level locking to OMXVideo

Finally tracked down the long term bug where channel changes sometimes just produce a black screen.
When changing channel we get a couple of open/close cycles as parameters in the hints get updated (e.g. video profile/level)
These are interleaved with decoding of frames from a different thread.
If the components are shut down while a packet is being submitted, we naturally get an OMX error, and playback stalls until another channel change.

OMXAudio already uses a critical section lock. OMXVideo should also do too.
Merge pull request #3443 from popcornmix/seek_deinterlace

[rbp/omxplayer] Fix stall on seek with deinterlace
Merge pull request #3444 from popcornmix/livetv_stall

[rbp/omxplayer] Add high level locking to OMXVideo
Merge pull request #3326 from Karlson2k/charset_converter_rework_03

CharsetConverter rework - part 03