Improvements.

 * Switch to File::Path::Tiny and eliminate useless -d check.
 * Non-zero exit if anything goes awry.
 * Do not File::Copy::copy if source not a plain file.