Added disposal of preview bitmap on Options form.

Fixed an Argument.EnsureNotNull check with mismatching variable and name.
Changed AnimationLoopBase.QueueAddRangeAndStart to exit early in the case of an empty collection, and to skip over null elements rather than throwing an exception.
Changed ISpriteCollectionView to provide a property for mouse buttons currently held down, and removed MouseUp and MouseDown events.This allows sprites to more reliably react to whether a mouse button is actually held down or not, as MouseUp/Down events often do not get fired due to focus issues, etc.

Added IDraggableSprite interface to generalize draggability, and allow PonyAnimator to drag sprites via this interface without needing to consider classes separately or with special consideration.
Simplified ISprite interface by removing IsSpeaking property - instead this can be determined when SpeechText is null.

Renamed CurrentTime to be ImageTimeIndex as this actually describes intended purpose correctly.
Removed Pony.InteractionBases helper property. Access now through Base.Interactions.
Tidied EffectImageViewer location logic.
Added IExpireableSprite to provide for generalized handling of sprites 'expiring' due to removal from the collection, or from 'timing out' (e.g. effects). This allows co-ordination with the sprite collection and between other sprites in a more organized manner. The logic of when sprites expire can be put within the sprite itself, decoupling the animator from dealing with those issues.
Change house deployment to not set any behaviors explicitly - ponies being deployed do this automatically anyway.
Fix WinFormSpriteInterface to not call AllocateBuffers when the bounds change but the form has not yet been opened. When alpha blending is off, this causes a Win32 error when the second call AllocateBuffers is made before the form is shown. Not sure why that is, but preventing the redundant allocation avoids the problem.