Try to make forced exiting more reliable (using exit causes malloc deadlocks).
Fix bug in videoGap handling, introduced in da635890. Videos with several seconds of gap were not being displayed at all and others were displayed at wrong time.
Decoding bugfixes and cleanup.

- Hack to allow working sample rate / interleave conversion on new FFmpeg (and possibly LibAV) versions.
- Still using deprecated avcodec audio_resample(); needs to be written around libswresample/libavresample at some point.
- Proper timecode calculation for files that do not begin at zero timecode (mainly MPEG TS).
- No output when decoding a packet is not an error (could be delayed output, e.g. B frames).
- Cleanup.
Remove VideoFrame type and use Bitmap instead.