Consolidate paths of common binaries on FreeBSD, NetBSD and OpenBSD
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
Merge pull request #299 from skreuzer/consolidate

Consolidate paths of common binaries on FreeBSD, NetBSD and OpenBSD
Escape the dots in def.domain where used in def.acl

I saw
 admit_hostnames: .*intra.cfengine.com
in my hub's report of what it would grant access to.  The dot at the
start is clearly intended as a regex so I must suppose the later dots
are treated as such, too.  So the owner of YYYintraXcfengine.com can
get at my hub; this probably isn't prudent.  So escape the dots in the
domain and put an (escaped) dot before it, so that only hosts within
the specified domain are granted access.
Split def.acl into def.hostnames and def.ips

Retain def.acl for backwards compatibility, but split it into two for
use with the more modern admit_ips and admit_hostnames.  Since admit
matches hostnames to regexes, whereas admit_hostnames only does
literal suffix matching on domains, the hostname handling needs to be
subtly separated.
Use new def.acl_ips and def.acl_hostnames in preference to def.acl

Split uses of admit into uses of admit_ips and admit_hostnames.
The situation with allowconnects and allowallconnects is messier -
they honour hostnames but only for exact match (no regex matching) -
so leave them for others to think about later.
Petty tidy-up: purge dangling hspace, stray () and excess blank lines.