Reduce calls to Pony.regionF a bit by caching value in a couple of places as it's actually evaluated a fair amount and is not that cheap to calculate.

Cache the axis-aligned region value so that the property access is cheap for callers. Do not attempt to cache regionF as it has complex and often changing dependencies.
Cache scale factor access in GetRegionFForImage to speed that up a bit as well.
Fix an ObjectDisposedException crash that could occur when closing down the PonyAnimator. Successive calls to Finish might attempt to enumerate sprites which would use a disposed handle. Protect against this by only running code once.