Allow copy of dead symbolic links, see https://dev.cfengine.com/issues/6175
Implemented all suggestions from @ediosyncratic. Thanks for the review
obey coding style and changed log message
the detection of dead symbolic links must also be ported to protocol_version 2 to my surprise
Un-suppress AIX, as it now works.

Builds of testing-enterprise-master were failing because
check_outputs.cf expected to fail and didn't ;-)
Merge pull request #1896 from ediosyncratic/aix-works-fix

Un-suppress AIX, as it now works.
Refine old-ACL representation of new-ACL hostnames.

The old-style ACLs used regex matching on hostnames, alongside exact
matching; new-style uses only sub-domain and exact matching.  So map
sub-domain matches to regexes in the natural way.
Make regex tests accept const-qualified parameters.

The string passed to IsRegex or IsPathRegex is not modified, so allow
these to be passed a const pointer; likewise for IsRegexItemIn's regex
and the list of entries that's used to check.
Handle old host-regex properly as sub-domain in new ACL.

This resolves
     TODO clean up possible regex, if it starts with ".*"
     then store two entries: entry, and *dot*entry.
from an old comment.  I'd inadvertently implemented this direction of
mapping by mistake when I set out to do the - much easier (see
previous commit) - reverse transform and got confused.  So, might as
well not waste it.

Note that a regex that doesn't make sense as either a sub-domain match
or a simple domain name shall now be ignored, where it was previously
added to the host-name ACL; but, since it wouldn't have matched
anything anyway in the new-style ACL, there should be no harm in
omitting it.
Merge pull request #1897 from ediosyncratic/acl-fixes

ACL fixes in core
Merge pull request #1892 from basvandervlies/cf_serverd_allow_copy_of_dead_symbolic_links

Allow copy of dead symbolic links
Fix option handling for the timing-output option to cf-agent
Merge pull request #1899 from jooooooon/fix-timing-option

Fix option handling for the timing-output option to cf-agent
Include type definitions when declaring functions that use them.

A header should not reference a type for which it doesn't provide a
declaration, ideally via the appropriate other header.  I wanted to
call cf_closesocket but pulling in the header that provides it gave me
compiler errors because of references to undefined types in functions
I wasn't interested in.
Merge pull request #1900 from ediosyncratic/header-fix

Include type definitions when declaring functions that use them.
Add: Acceptance test for rendering quotes in mustache

Ref: https://dev.cfengine.com/issues/6516
Merge pull request #1898 from nickanderson/redmine/6516

Add: Acceptance test for rendering quotes in mustache
Fix for test of mustache's rendering of quotes.

The test expected variable expansion to be unescaped, but it's escaped
by default; it needs an & at the start of the variable name to
suppress escaping.  I've duly expanded the test to test both escaped
and unescaped variable expansion.
Merge pull request #1903 from ediosyncratic/mustache-fix

redmine6524: Fix for test of mustache's rendering of quotes.
Only filter init out of process matches when we *are* signaling.

FindPidMatches() filters pid 1 (init) out of its result list because
we don't want to be sending it stray signals - we should only do this
when a.signals is set, though !  We special-case HUP and allow it; but
then a check on pid < 4 will exclude it anyway, regardless; so make
that an else clause of the pid == 1 check, so avoid subverting the HUP
exception.  Finally, combine these and the "don't shoot yourself"
exception for cfengine_pid into a single block conditioned on
a.signals instead of testing it separately for each of these cases.