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.