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
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.
redmine4094: Infer start-time from elapsed when needed.

Some variants of ps report start-time as a date if before today (no
matter how recently today started) or even report a year for dates
before this year (even if new year's day started mere seconds ago).
These, naturally, give very imprecise information.  When that happens
but we have an elapsed time column (containing a value we can parse),
use this to infer a better start-time.  At the same time, improve
parsing of relevant time strings generally.  Based on a patch from
Tony Lill - many thanks.

Added an acceptance test.  Failed before the fix, passes with it :-)