Redmine#4513: check PUBKEY in PolicyHubUpdateKeys
Merge pull request #1422 from tzz/bugfix/redmine4513-check-PUBKEY

Redmine#4513: check PUBKEY in PolicyHubUpdateKeys
new autoconf option to make state directory configurable: --with-statedir=<directory>
Make use of preprocessor macros for static known_dirs.c functions
rename MAX_WORKDIR_LENGTH macro to more generic MAX_DIR_LENGTH
add GetStateDir() and supporting functions
make use of GetStateDir() and replace hardcoded state/ paths
RemoveDates():
- use sizeof on datetime string literal to move computation to compile-time.
- comment on uncertainty of two-digit hh:mm:ss and time-zones shorter
  than three letters.

Pointed out by Edward Welbourne
LogTotalCompliance(): prevent cf-agent from bailing with custom logdir
adjust examples/measure_log.cf comment to account for compile-time statedir
MonNetworkInit(): use GetStateDir() and refactor
MonitorInitialize(): make use of GetStateDir()
make bootstrap.c functions, and their usage, respect GetStateDir()
Last of the needed GetStateDir() usage in generic_agent.c
prep cf-agent self-diagnostics for --with-statedir compile-time option
GenericAgentInitialize(): make sure custom {log,pid,state} directories are created
tests/unit/Makefile.am: added known_dirs.c to libdb libtool library sources
Strip state/ from DB_PATHS[]; make all DBIdToPath(dir, dbid) calls use GetStateDir()
tests/unit: use CFENGINE_TEST_OVERRIDE_WORKDIR in combination with GetStateDir()
tests/load: use CFENGINE_TEST_OVERRIDE_WORKDIR in combination with GetStateDir()