servicemp3: different handling of subtitles from gstreamer.

- cache all (future and past) subtitles received from gstreamer,
not only "current" ones, this works better, because gstreamer
does not always send subtitles in time for enigma;
- use map instead of list for cache for better efficiency;
- use locking on the subtitles cache data;
- don't throw away subtitle cache when seeking;
- store only necessary information (start, end, text) in cache,
instead of complete PangeSubtitle structure per subtitle;
- use ns/ms/pts units more consistently;
- use subtitle end time instead of start time to decide whether
subtitle is current and take already passed time since begin of
subtitle into account, this enables displaying subtitles that
are "skipped into half way" when step-skipping.

Thanks to pieterg and sjaaky for their input.
servicemp3: remove unnecessary locking for subtitles.

It appears the code accessing the subtitles cache is run
all within one thread and the enigma2 timer mechanism is
non-preemptive.
Merge branch 'master' of git://git.code.sf.net/p/openpli/enigma2