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
Force cf-agent to be the only one to write cf_promises_validated.

This is so that the separation is clear: cf-agent writes the file, the
daemons read the file.
Declare and initialize Attribute struct wherever possible

This change mostly gets rid of = { {0} } initialization.
Rename confusing variable 'classlist'

It actually holds a monitoring data to be written to the file, so name it so.
Group LoadSlowlyVaryingObservations together with other mon-related code
Fix cf-execd not reloading network and monitoring data

Environment reload was a huge bunch of copy-pasted-edited code,
so not all subsequent changes were applied to all agents at once.
Fix it by ensuring all agents unconditionally reload environment
in the same fashion.
Add missing time classes to cf-monitord
Remove long-outdated comment
No need to zero-initialize global variable
Split SetPolicyServer into two functions

Why $(sys.last_update_timestamp) was set in SetPolicyServer()?
Move POLICY_SERVER and sys.policy_hub initialization to single place

Previously it was scattered to several places, partially redundant.

Note that new clause in SetPolicyServer changes the behaviour, but
1) it is very rare case (policy_server.dat disappears during runtime)
2) this behaviour makes more sense: previously if policy_server.dat
disappeared, both POLICY_SERVER and sys.policy_hub retained old value
until process restart. After the change POLICY_SERVER and sys.policy_hub
pick up new value, even if it is "no file exists anymore"
Fix inclusion guards after rename
Remove unused variable
constify Policy
Redmine#2555: skip XML tests if !HAVE_LIBXML2
Redmine#3848: acceptance test to check that common bundles print their reports
Merge pull request #1182 from dottedmag/refactoring/streamline-env-detection

Refactoring/streamline env detection