Refactor some stuff related to subtitles.

We want to decouple the subtitle renderer from the video renderer
Move subtitle related code into src/subtitles
Enqueue subtitle packets in a separate queue

This allows us to pick subtitles that are out of sync with video stream

Also makes it possible to do negative subtitle time shifting for embedded subs

Fixes #727
Fixes #1470