Buffer implementation

This is a simple buffer implementation. By default it behaves as a CString, although it can automatically grow if needed.
It can also be used as a byte array, in which case '\0' is ignored.
ListMutableIterator

ListMutableIterator is an iterator that allows the list to be
modified while traversing the list. Each list can only have
one such iterator at any given time. It is not ready yet,
it lacks prepend, append and unit tests.

ReviewedBy:
Adding ListMutableIterator

A mutable iterator is an iterator that can be used to modify the list.
Each list can have at most one mutable iterator. Mutable iterators
can be used together with the Prepend, Append and Remove functions
from List, although mixing removal from the list with removal from
the iterator might lead to unexpected results. This is because the
list might delete the node pointed by the iterator, and therefore
the iterator will be moved to a different element (either the next
or previous element), if that is not possible then iterator will be
invalidated.
Merge pull request #292 from cduclos/master

ListMutableIterator && Buffer
Do not link Community to libldap
Remove duplicate selection of libraries for MinGW build
Move comparray from libpromises to cf-agent

(Related: #1973)
Fix edit_xml update of existing attribute, with acceptance test

Redmine 2034: https://cfengine.com/dev/issues/2034

The xmlNewProp() libxml2 call, used in SetAttributeInNode(), does not
alter the value of an existing attribute, resulting in an inability
to keep promises about the value of any existing attribute.

The xmlSetProp call will create an attribute that does not exist, so
replacing xmlNewProp with xmlSetProp resolves the issue.
Remove duplicate LogHashChange function: leftover after split
Include alloc.h to bring xmalloc to atexit.c
Use platform.h to include conf.h in alloc.h
Fix wrong #ifdef for GetUidConstraint
GetOwnerName has a separate implementation for mingw
Link to Nova-specific libcfexecd
Fix wrong macro name
Merge pull request #294 from mvpel/fix_xml_setattr

Fix edit_xml update of existing attribute, with acceptance test
Implement automatic discovery and bootstrap for cf-agent.

cf-agent discovers policy servers using Avahi implementation of Zeroconf protocol
at runtime using dlopen.

If a single hub is discovered cf-agent will automaticaly bootstrap to it.

If there's more than one hub discovered cf-agent will print a message listing
available hub and ask user to manualy bootstrap to a proper IP address using
--bootstrap --policy-server <right IP address> command line option.

To use automatic bootstrap --bootstrap/-B command line option is required without
specifying the IP address.
Implement generation of Avahi configuration file.

Add new command line option to cf-serverd -A. cf-serverd executed
with this option will generate Avahi configuration file in
/etc/avahi/services and restart avahi-daemon to make policy server
discoverable over the network.
Register atexit function to close loaded library.
Move include of atexit.h to findhub.c .