Unit test for concurrent access to local storage (supports TC and LMDB)
Redmine#3781: acceptance test for namespaced edit_line bundle
A files promise with no action now prints a message.
Queue implementation

This is a simple FIFO implementation using reference counting and
copy on write.

It implements the basic queue operations:
- Head: Return a pointer to the first element without dequeuing it.
- Enqueue: Adds one element to the end of the queue.
- Dequeue: Dequeues the first element of the queue and returns a
pointer to it.

In addition, it implements the basic administrative functions:
- New
- Destroy
- Copy
- Count
- IsEmpty

Incorporated most of the feedback received after the pull request was
published.
RefCount improvements

Removing some error codes and replacing them with ProgrammingError.
RefCount is such an internal and basic structure that there is no
reason that any operation should fail, any problems are caused by
misuse.
Modifying List after RefCount modifications

Some minor adjustements were required after the removal of error
codes from RefCount.
Modifying Buffer after RefCount modifications

After the removal of error codes in RefCount, Buffer needed to be
adjusted accordingly.
Revert "Move IPADDRESSES to the EvalContext struct"

This reverts commit 6d7360fba7bf855b672ec2f0a9443978d7cafa22.
Revert "Don't use IPADDRESSES in cf-execd-runner subprocess"

This reverts commit d64c8f7612a5c91bd2fe0c73be9b00d19835673f.
Revert "Don't use global IPADDRESSES in addr_lib"

This reverts commit 00ed4d6b96a56b614d596e43b74471a07ec8edca.
Deprecate logging contexts to local database
Add string set serialization test
Remove leftover comment.
(cherry picked from commit f957351e725c347bbacb39f7e552625f6f5c6235)
Fix cf-serverd not reloading policies when they have changed.

The root of the problem was that the code to check for updated
promises was shared between cf-agent/cf-promises and the daemons, but
they have different semantics. cf-agent/cf-promises need to check
whether any files have changed so they can update
cf_promises_validated. To do this, a check that compares
cf_promises_validated to each file in inputs is needed, which is what
the existing code is doing.

The daemons however, need to compare the modification time of
cf_promises_validated against the time that they last reloaded the
policies, which is a value that should be kept in memory.

This was fixed by running a simple stat in the daemons and comparing
that to the time of the last seen cf_promises_validated. Also made
sure that cf-agent is the only one updating the cf_promises_validated
file. It's not the daemons' responsibility to do this.

Redmine #3809.
(forward-ported from commit 19c790c1f11eda9b84ced6bc09569e02b7958024
in 3.5.x.)

Conflicts:

	cf-execd/cf-execd.c
	cf-serverd/cf-serverd-functions.c
	cf-serverd/cf-serverd-functions.h
	libpromises/generic_agent.c
	libpromises/generic_agent.h
contrib/cfengine-code-style.el: Fix file header and footer lines for ELPA compatibility

- Fix header line
- Add footer line
- Add Commentary section
- Add Code section
- Change semicolons of header comment lines from three to two
Merge pull request #1172 from yasuyk/fix-for-elpa

contrib/cfengine-code-style.el: Fix file header and footer lines for ELPA compatibility
Modifying Queue after RefCount modifications.
Modifying BufferList after RefCount modifications
Merge pull request #1166 from cduclos/queue-implementation

General libutils modifications and adding Queue
sysinfo: give group, comment, and derived-from tags.  Remove goal= tags.