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
Factor out verify_storage.h
Factor out verify_exec.h
Introduce SyntaxCheck, PromiseKept and Repair for verify_exec

This is a proof of concept for splitting the traditional Verify function
for modules. It splits Verify into 3 stages, syntax checking (evaluation stage),
status checking (whether the promise needs repair), and Repair. Repair returns an
ActionResult, specifying the outcome of attempting to repair the promise.

The end goal is to have all modules take a struct with callbacks to these functions,
enabling pluginification and a step towards introducing isolated evaluation state
(by effectively removing cfPS from lower levels).

Additionally, a GetLockName function is needed for each promise type, but this
may be reconsidered in the future (when we get around to reconsider locking).
Merge pull request #296 from sigurdteigen/cleanup/split-verify

Introduce SyntaxCheck, PromiseKept and Repair for verify_exec