Do not replace stdout in child worker process.

Unidentified spurious problems on Solaris 9, with file descriptor 0
*not* corresponding to stdin, triggered me to change the worker child to
not close its stdout and replace it with the dup()ed pipe
descriptor. Instead, it now fprintf()s directly to that pipe.

Didn't fix the problem on Solaris (still investigating) but still its a
good change.
pthread_cond_timedwait() takes absolute time

Also fix threads actually delivering the signal when they should.
This fixes test failure on Solaris.
mark tests as test_suppress_fail
Merge pull request #1779 from MatthewCattell/solaris10-acceptance-failures

mark tests as test_suppress_fail
Revert "mark tests as test_suppress_fail"
Merge pull request #1781 from cfengine/revert-1779-solaris10-acceptance-failures

Revert "mark tests as test_suppress_fail"
Using high precision clock should avoid corner case...

where time(NULL) returns e.g. 5, but time is 5.99.
Thanks to @kacfengine for spotting this.
Suppress some acceptance tests on solaris 10
Merge pull request #1778 from jimis/lastseen_threaded_load_fix-redmine6103

Lastseen threaded load fix redmine6103
Revert "Apparently we can't support size_t's z modifier in formats."

This reverts (most of) commit ef3b5fe24263f47db8ef937f450cd3655c1b59b4.

BIG FAT NOTE: We provide a C99 snprintf(). So our Log() function and
              most other libutils facilies *are perfectly good* with C99
              modifiers. You should only avoid C99 modifiers when
              calling non-snprintf functions directly from libc, e.g. an
              fprintf() call.

Conflicts:
	cf-serverd/tls_server.c
	libpromises/dbm_tokyocab.c
	libpromises/eval_context.c
	libpromises/evalfunction.c
	libpromises/policy.c
	libpromises/promises.c
Log() can use C99.
Log() and cfPS() can both use C99.
Log() can use C99.
Some incompliant printf()s segfault ...

... when asked to write to an NULL buffer. From snprint man page:

C99 allows str to be NULL in this case, and gives the return value (as
always) as the number of characters that would have been written in case
the output string has been large enough.
Reflowed HACKING.md with set-fill-column set to 78.
Update HACKING.md to clarify our C99 support status.
Added another test according to @ediosyncratic's review.
All our [v][f]printf() calls have now C99 replacements in libcompat.
Update HACKING.md to reflect C99 status.
Cleared implementation of compiler.h.