Fix overlapping burnt-in subtitles in some cases (#959).
Firstly, when finding subtitles that exist during a period, only
return those which overlap more than half the period. This means
that, in a fight over a frame, the longest-running subtitle in that
frame will win.
Secondly, make SubtitleDecoder::get pick the wanted subtitles from
the cache simply by comparing their periods to those that were
requested. I think this is nicer than what was there before
(basically reevaulating 'what subtitle(s) for this period') and
also makes the first part of this commit effective.