Adding cf-isalive

Per @zzamboni request
See https://groups.google.com/forum/#!topic/help-cfengine/NmyIOyUMLxw
Applied @ediosyncratic suggestions
Merge branch 'master' into cf-isalive
Support for CFEngine 3.6
Updated with latest version
Don't pass literal strings when a char* is needed.

Perhaps IsUserNameValid() shouldn't need to modify its parameter; but
its test shouldn't pass it a const char* parameter as long as it
claims it does.  Turn the literals into initializers for non-const
arrays.
Warning-fix: use assert_true() in tests rather than assert().

In an NDEBUG build, assert() doesn't actually test the condition; but
the test should indeed be testing it, so assert_true() is more apt.
Also simplify a return.
Only mark parameter as unused when it isn't used.

CurrentZoneName()'s string parameter is only used when we
HAVE_GETZONEID; so only mark it as unused when that's not enabled.
Mark parameter as unused only when it isn't actually used.

Was marked as unused, but is used in an assertion.
Apply suitable #if-ery to the ARG_UNUSED.
warning-fix: Correct signature of SaveXmlCallback().

It's used as a SaveCallbackFn, so needs to accept a NewLineMode as
third parameter, even if it does ignore it.  It should also be a
static function (nothing outside its file uses it); and we may as well
simplify the #if-ery around it and its one caller.
Typo-fixes and a rephrase in HACKING.md

s/absued/abused/
s/indenpendent/independent/
Rewrote garbled line about keeping log messages atomic.
Warning-fix: eliminate uses of deprecated sprintf().

All in verify_databases.c; and clean up CreateTableColumns(), which
was one of the culprits.  It was also adding random extra amounts of
space to an allocation - "just in case" I suppose - thereby
obfuscating the actual amount of space needed.  Eliminated an
intermediate fixed-size buffer we didn't need (and any associated
truncation).  Avoid quadratic costs associated with repeatedly
traversing a string to find its end, at which to append.
Test for cf_null in bundlesequence being skipped

Redmine 6119
Skip cf_null entries in bundlesequence.

Fixes Redmine 6119
Testcase for defaults promises

Classes promises trigger a re-evaluation of the bundle's variables
to resolve dependencies quickly. This overrides and thus breaks defaults,
promises which have already been evaluated.

Why the test case has to be so complicated, testing both for positive
and negative outcome explicitly, is beyond me. Probably because bundle
return values are not just terrible to use, but also implemented in
some fascinatingly complex way.

See redmine 5748
Evaluate defaults promises again after classes promises

Since we re-evaluate variables to resolve dependencies between
classes and variables quickly, we also need to re-evaluate defaults
promises again.

Fixes Redmine 5748

This includes the refactoring from e92efc5458117c4988ddb8c815c72a017bd5f981
Indentation - whitespace-only change
Merge pull request #1978 from vohi/redmine/6119

Redmine/6119
Merge pull request #1966 from ediosyncratic/warning-fixes

Warning fixes
Merge pull request #1955 from jimis/conn_cache

Connection cache now takes into account port and flags of body copy_from.