Fix non-convergent HP-UX shared lib perms in failsafe.cf (R#1179)

HP-UX shared libraries must be executable, since the OS uses the file perms
to set the permissions on the memory map, and the memory pages for a mapped
shared library must have execute permissions in order for the shared library
to be used.

An earlier commit (6edd6f9a8000c4fecc5e521ef048eeb69c3c99b5) added code to
set the correct 755 permissions for HP-UX, but did not add an exception for
non-HP-UX systems for 644 permissions. This led to a non-convergent pair
of promises, one of which set mode 644 and the other which set 755 each time
CFEngine ran on an HP-UX system.

This commit corrects that problem: it creates a new "perms" body -
u_shared_lib_perms - which sets mode 755 in "hpux" context and 644
otherwise, and eliminates the duplicate promiser, providing convergence
on HP-UX systems while also simplifying the failsafe.cf.
Merge pull request #213 from mvpel/hpux_lib_perms

Fix non-convergent HP-UX shared lib perms in failsafe.cf (R#1179)
Redmine #1598: add cf-sketch hooks in promises.cf
Updating documentation for build_xpath
Merge pull request #220 from tzz/master

Redmine #1598: add cf-sketch hooks to masterfiles
Merge pull request #221 from shaunamarie/features-xml-buildxpath

Updating documentation for build_xpath
Make KeepPromises not static and explain why
Add "listen" attibute for body server control to disable listening on port (for nodes)
Merge pull request #224 from maciejmrowiec/master

Add "listen" attibute for body server control to disable listening
Fix SetServerListenState reference error.
Respect ordering of atexit(3) and RegisterAtExitFunction (Redmine #1627)

RegisterAtExit functions were called after all other functions registered by
atexit(3), which resulted in crashes due to out-of-order deinitialization.

Given that RegisterAtExitFunciton is only strictly necessary under Windows for
Windows service implementation, ensure that Unix variants use ordinary atexit(3)
function and separate list of cleanup handlers is only collected under Windows.

Given Windows service won't call atexit(3) anyway, ordering is not important in
this case.
Unit test for atexit.c functionality
Register DB cleanup function after at least one DB is opened (Redmine #1627)

Otherwise cleanup function registered by DB library may kick in too early, so
CloseAllDB will crash.
Retire code that was moved to Enterprise
Merge pull request #225 from markburgess/master

Remove retired code
Factor out keyring.h and export RemovePublicKey. This is now reused by cf-hub for keys cleanup. Redmine #785
Fix PrintRval and PrintItemList truncation #1680
Merge pull request #226 from maciejmrowiec/master

Fix PrintRval and PrintItemList truncation #1680
spell fixes to manuals
Merge pull request #227 from cf-gary/master

spelling fixes to manuals