Fixed world saving breaking forever if a single world save ever fails

For example this happens if save fails due to a permission or disk space error.

Optimised the save routine to use File.Delete + 2 x File.Move's instead of 2 x File.Copy's. This reduces the number of bytes written to disks by world size x 2 and eliminates all disk reads in this code path.