MainFrame: improve snapping behavior

Previously, we could mistakenly treat maximized state that was
entered with aero snap as our own snap. It produced problems when
the window was being dragged out of that maximized state.
This commit fixes that situation.
Don't exit "delay show not loaded" state on show
Don't paint logo in "delay show not loaded" state
Don't show toolbars in "delay show not loaded"

If exclusive seekbar was active when entering said state
Lower "delay show not loaded" duration
Fix: PGS subtitle timings were sometimes wrong.

Some PGS subtitles started or ended too late.

Subtitles should be queued before we know when they really end because the next subtitle can come much later in the stream.

This commit fixes #3691.
Remove a duplicated clean-up.
Ensure the DirectShow graph is completely destroyed after CloseMediaPrivate().

Destroy all dynamic menus that can possibly hold a reference on an object of the graph.

This fixes a strange issue with the logo not being redrawn in some cases when MadVR was used.
Ensure the keyframe timings array is read/written only by the main thread.

Revert 02356359a23ded82585560fade11b9089d590734 and remove the other duplicate I initially kept. Even if we get that info from the DirectShow graph, the array is filled and used only by the main thread. It's safer and more consistent to have it cleared by the same thread.
PGS Subtitles: Fix subtitles not being removed from screen after d8deeda49e270d02e9eae795265494184f409b29

Since we drop empty segments we were trying to update the end time of segments that weren't in the queue and we ended up modifying the previous segment that was completely unrelated.

Fixes #3691.
internal filters: enable avisynth support
FGManager: Update VSFilter/XySubFilter blocking routines

No longer disable VSFilter with madVR + XySubFilter, and add XySubFilter's
autoloader to be blocked when ISR is enabled as newer versions depend on
that.
Always prefer internal subtitle renderer

ISR does work fine not only with EVR so it can be safely used on XP also.
Fix ISR loading

- Fix ISR being auto-loaded when it shouldn't be.
- Fix ISR loading when auto-loading is disabled.
Disable some UI elements when ISR is unavailable.
Apply astyle
Prevent ISR from loading if VSFilter is already present.
Rename "Auto-load subtitles" to "Use the built-in subtitle renderer"

"Auto-load subtitles" option has been abused to disable ISR for years.
It makes more sense to change its name. Yet we still load ISR if user try to
load subtitles without any other subtitle renderer present in the graph.
ISR: Fix subtitle timing when external timer and madVR is used.

Partially fixes #4141
Merge pull request #132 from m0vie/avisynth

Use LAV Splitter by default to demux AviSynth script.

This avoids using the old VFW interface that is said to be less stable than directly using AviSynth through ffmpeg. Note that this means AviSynth is still required to demux the scripts.