move() with File::Copy::move()

The rename() documentation says "behavior of this function varies wildly depending on your system implementation."  That's no good, Perl is supposed to protect you from that.  The most common problem with rename is whether it will rename across filesystem boundaries.

This uses File::Copy::move which protects the user from rename's quirks.  I also fixed up the error handling of copy on the way.