Add a copy_from body to copy a local file if it is different from the existing
copy and preserve file permissions on the local copy.
Merge pull request #300 from skreuzer/perms_dcp

Add a perms_dcp() copy_from body