Collect subtitles at the same time to prevent overlap

Subtitle overlap in video when the timings overlaps.

Before moving rendering subtitles to overlay renderer, CDVDOverlaySubtitle::GetCurrentSubtitle() function did it.
This is wrong. You will leak memory. it->overlay may already be set here. Please keep the old loop. just push down the items to render in a new vector instead of directly calling Render() which you then iterate over to calculate height, then in next step you iterate again to render.

````
SElementV render;

foreach(it in list) {
  ...
  ...
  if(!o)
    continue;
  render.push_back(o);
}

foreach(o in render) {
  total_height += ...
}

foreach(o in render) {
  render(o)
}