Refactored source types (Avisynth, VapourSynth, etc) into separate classes + loads of fixes.