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
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
Add xasprintf() to the suggested alternatives, it can replace the malloc()+sprintf() idiom.
Connection cache sanitisation

No change in functionality hopefully.
Make connection cache aware of port and flags.
Move forgotten files to proper directory.
Enable a bunch of cf-serverd acceptance tests to test multiple protocol versions and connect to multiple servers.
Reindent huge messy function in order while tracking down bug.
Report proper server host in "copying from" message

Previously it was always reporting the first entry from the "servers"
list in body copy_from, even when it was trying in the 2nd, 3rd etc
entries after having failed in the first.
Rename function to state that it marks conn as busy.
Bring back message lost in refactoring.
Unsuccessfully tried to enable both protocols in the trustkey=false test.
typo
More latest classic+latest protocol test coverage.
Rename "type" to the "protocol".