Leak-fix: destroy policy that fails partial check.

When LoadPolicyFile() loads a policy, it PolicyCheckPartial()s it;
if this failed, it leaked the policy while returning NULL.
Leak-fix: close the signal pipe on exit().
Leak-fix (FD): close socket when aborting on failure to lock.

That's in cf-serverd's StartServer().  Also avoid using an invalid
socket; if OpenReceiverChannel() fails to bind, it closes the socket
it just tried to use, so we should reset the socket variable to -1 so
we don't try to re-use the socket we just closed.  Split a long line.
Fix leaked fallback Rlist.

When the common control gives no bundle sequence, we used { "main" }
as fall-back for it; however, this fallback list wasn't getting
cleared away (and the fact that we were modifying the NULL list we got
back const-qualified was provoking a compiler warning - which is what
brought this to my attention).
Refined .gitignore; stamp-h1 can land all over the place.

It would seem the autotools create random files called stamp-h1 in
random places.  Ignore all of them !
Merge pull request #1776 from ediosyncratic/leak-fixes

Leak fixes
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.
Mark sprintf as deprecated.

A warning will be now output on every usage of that function on
GNU/linux. sprintf() is the only function for which we do *not* provide
a C99 libcompat replacement. While it's trivial to do it, I chose to
mark the function as *deprecated* because there is no good reason to use
it in place of snprintf().

In addition there is one good reason to *not* provide libcompat wrapper
for sprintf() and leave it as it is: so that we can call the specific
function to force invoking the underlying libc implementation. This is
the way the snprintf() test works (see libcompat/snprintf.c), it
compares its own results with libc's sprintf() results.
__printf__ is safer to not be replaced by preprocessor than printf

On some platforms it was being replaced by rpl_printf, and that string
was unknown to the GCC attribute.
Remove forgotten comments.