Fix incorrect cast leftover from changing FilterOptionsBox from strings to case insensitive strings.
Fix crash from deleting all characters in pony count text box (check for empty string).
Remove some dead code in Main loading regarding filters.
Fix closing of sprite debug form not moving to DesktopPonyAnimator, which meant the shared instance was being referenced instead.
Created EvilGlobals and moved several shared properties and fields into it - these should really have more suitable scopes defined and implemented as they cause some maintenance issues at the moment.

Renamed Main to MainForm.
Changed accessibility in a few places.
Renamed KeyValuePair.From to KeyValuePair.Create.
Added exit state to PonyAnimator, allowing a few global references to the main form to be removed. Instead the form can query the exit state in the finished handler and do the right thing.

Rewrote PonyAnimator.Update to do things in one pass, and reduce reinitializing interactions to the minimum.
Centralized a few different screensaver exit methods into PonyAnimator (on mouse move or click).
Pony.Teleport now private - teleporting handled by the class alone to avoid CurrentBehavior being null issues.
Added some concurrency safety to PonyCollection to handle renaming of ponies and avoid interactions dictionary getting into a bad state.
Fixed concurrency issue in AnimationLoopBase - sprite collection must not be enumerated (eg from the viewer UI thread) whilst being mutated (ie by the animation thread). This is now prevented.

Changed Start to include an initial draw.
Fixed lost time tracking - so animation won't try to catch up if a frame takes a really long time in debug mode, instead it is assumed a breakpoint is hit so animation just resumes from where it was.
Changed editor to remove old follow targets once the behavior or behaviors expire.
Changed some invokes to not depend on the global Main form.
Fixed an issue in AnimationLoopBase where sprites enumeration is allowed during disposal (may be in use by the animation thread until it exits) and so a separate check is needed later in the method to prevent spurious disposed exceptions.
Fixed error in new editor where the source text changing would trigger saving of paths without the correct root directory and thus point to the wrong locations.
Fixed effects not following ponies when this was specified! This seems to have been broken for a very long time. :(

When a pony is moused over any effects for the behavior will be removed. This means when the behavior restarts after mouseover ends, there will not be two copies of the effects onscreen.