Separated interactions into two classes, with a base class like most elements. Moved loading and handling of interactions into the PonyCollection class. Interactions per PonyBase are handed out from here based on name. Interactions no longer need to be loaded per PonyBase, which should aid editing and hopefully move towards making reloading unnecessary when creating new ponies, as instead references are resolved when interactions are initialized at the sprite level.

Adding some ToString overrides on Pony classes to add the string identifier to make debugging a bit easier.
Fixed a few incorrect usages to CultureInfo.InvarientCulture in the editor, and replaced with the correct CurrentCulture when round tripping through the UI.
Made IPonyIniSourceable a bit simplier.
Removed requirement to keep at least one behavior from editor.
Changed PonyCollection.Bases to refer to 'usable' bases - those with at least one behavior, and added AllBases so that those without can still be used in the editor and other such places.
Minor performance tweaks:

- Provide a custom enumerable struct for behavior effects, to prevent allocation of Linq iteration classes all the time.
- Directly call Render method rather than through render field in WinFormSpriteInterface.