Fixed bug in PonyBase.MoveOrReplace which couldn't handle saving when the temp path was on a different drive to the destination path (as File.Replace does not support this).

Fixed an error during loading when a pony with no behaviors would cause a crash (null reference trying to get image path of non-existent first behavior). Ponies without behaviors will now only appear in the editor.
Improved IdleWorker to handle exceptions when invoking tasks better, and to prevent some ObjectDisposedExceptions when the application thread shuts down unexpectedly.
Fixed DesktopControlForm to avoid catching ObjectDisposedException for flow control, instead uses locking.
Tidied up a few methods in the Core and Collections namespaces.