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
classic protocol could not handle shortcuts. Is necessary for bootstrap
applied suggestion from @ediosyncratic
as requested by @jimis removed the -1 from ShortcutsExpand(filename, sizeof(filename) - 1,
Use conn->hostname and added Changelog as requested/suggested by @jimis
Correct vzps usage

Conflicts:
	libpromises/cf3.extern.h
	libpromises/cf3globals.c
	libpromises/classes.c
	libpromises/processes_select.c
Augment acceptance tests with mix of empty/non-empty lists.

Also, move testcase that fails due to bug in format() into
correct directory.

Test cases for Redmine #6553
Iterate correctly over multiple lists.

If any list in an implict iteration is null or contains only null-values,
then the promise shall be skipped entirely.

The previous logic tried to account for (and to some degree, rely
on cf_null) in the list of variable values (var_states). The resulting
logic was overly complicated and didn't correctly abort iteration if
any of the lists was null.

Instead, store in the iterator if we encounter a list that has no
valid values, and implement NullIterators (a function declared
in iterate.h but never implemented) to return true if that was the case
so that we can skip the entire promise.

Remove dead code. This goes a long way towards a complete purging of
cf_null. We can't do so completely as we need to account for policies
that explicitly insert cf_null (many tests), and for functions. If we
were to remove it, then rval.item being NULL would become a valid case,
but a lot of evaluation code treats that as an error.

Fixes Redmine #6553
Refactoring: Remove cf_null handling from functions.

Instead of making sure in every list-returning function that we don't
return the null-pointer, centralize the appending of CF_NULL_VALUE
in FnCallEvaluate.

Remove unnecessary null-pointer checks. Allow sum() and product() to
successfully calculate 0 and 1 for null-lists, respectively.
Clarify the end-steps of WaitForIncoming().
Dumb down some simple code.
Wrap HACKING.md where lines exceed 78 columns.
Refine debug log output in hopes of clues to why test fails on Aches.
Add some debug output to laterthan.cf

... so we have some clue as to what's failing.
HACKING.md: add do-while exception, and rewrap some text around it.
Merge pull request #1946 from vohi/redmine/6553

Redmine/6553: Fix implicit looping over multiple lists