Remove costly debug code in VariableTablePut
Optimize StringSetFromString
Remove BufferList

Not in use (and requires RefCount, a malloc hog).
Detach Buffer from RefCount

Too much malloc being caused by this unused feature
Do not check self referential on VariablePut
Reallocate Buffer capacity to nearest power of 2
While parsing, only resolve policy if policy changes
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