Fix minor issue in WinFormSpriteInterface.AnimationsAreHorizontallyMirrored which was not bothering to compare single frame GIFs (assuming images with only one frame would be bitmaps and not GIFs). This change means a few more mirrored images will now be detected.
Fix a deadlock issue between AnimationLoopBase and WinFormSpriteInterface when the interface closed itself (e.g. the user closed the window). The UI thread would dispose the interface and raise the event for the interface closing. The animator had hooked to this event to dispose itself. This would result in the UI thread blocking in the animators disposal method waiting for the animation thread to exit, but the animation thread would in the meanwhile have called an interface method and be waiting on the UI thread to invoke to perform it.

To resolve this, the animator will no longer use the event for finishing when the viewer closes, but will instead check for a flag in the update/draw loop. This means the animation thread will dispose itself rather than having the UI thread leak and get deadlocked.

Finally, to prevent the UI thread closing itself when the animation thread is relying on it, a new flag has been added to stall any self-closing of interfaces. Whilst set it will wait until the flag is reset before closing itself.
Changed OptionsForm to only display the screensaver settings when on Windows and when the screensaver profile is the current profile. Force this profile to be loaded when the screensaver executable is running.

Fixed MainForm to always reload profiles when the selection is changed (including when copying or deleting).
Added tracking of the current size covered by the buffers to AlphaForm. If a resize is triggered but the width and height have not changed it does not need to recreate the buffers.
Version to 1.48.