Refactor video player engine to get rid of MWSound dependencies

 - Split video player to separate source files.
 - Audio is handled in a MovieAudioFactory, implemented by the user (here in MWSound subsystem).
 - Handle conversion of unsupported channel layouts via ffmpeg's swresample.