Remove the option to disable the PCM audio provider
Redesign AudioProviderFactory

Register functions which create each type of provider rather than the
provider types themselves so that the concrete types don't need to be
publicly exposed, and use a static list of providers rather than
registering them at runtime.
Remove virtual destructor from FFmpegSourceProvider
Convert VideoProviderManager to AudioProviderManager's new design
Extract some duplicated code
Refactor the rest of the factories
Fix issues with RecombineOverlaps
Don't skip the first dialogue line in the kanji timer