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
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()
known_dirs.c: Collapse GetInputDir(), GetMasterDir(), GetStateDir() with preprocessor
new $(sys.statedir) special variable
Obliterate CFWORKDIR (GLOBAL_C) and its usage in the main codebase.

- CFWORKDIR globals remain in tests/{unit,load}/ but are unrelated
  to the global that is being obliterated here.