Change JsonParse to return enum JsonParseError

This cuts the depedency on CfDebug/logging and rather returns an
error code indicating the parsing error. A textual explanation of the error
is available through JsonParseErrorToString. Also makes it easier to test for
specific errors.

JSON_PARSE_OK indicates a successful parse.
Move json to libutils
Move atexit to libutils
gitignore
Factor out files_properties.h
Factor out verify_packages.h
Remove lex declaration from prototypes3.h, move to parser
Move DeEscapeQuotedString into lexer
Restore running make in Nova main directory.
Move AssocHashTable to assoc, hash functions from files_hashes -> hashes
Make general hash functions take max parameters.

Cut dependency on hash table- and other constants.
Move hashes to libutils
Move string_map to libutils
Eliminate spurious type-pun warning during HP-UX GCC build.

While the "fd_set" type is defined in /usr/include/sys/_fd_macros.h as a
struct of an array of "long" values in accordance with the XPG4 standard's
requirements, the macros for the FD operations "pretend it is an array of
int32_t's so the binary layout is the same for both Narrow and Wide
processes," as described in _fd_macros.h. In the FD_SET, FD_CLR, and
FD_ISSET macros at line 101, the result is cast to an "__fd_mask *" type,
which is defined as int32_t at _fd_macros.h:82.

This conflict between the "long fds_bits[]" array in the XPG4-compliant
fd_set structure, and the cast to an int32_t - not long - pointer in the
macros, causes a type-pun warning if -Wstrict-aliasing is enabled.
The warning is merely a side effect of HP-UX working as designed,
so it can be ignored.
Merge pull request #287 from mvpel/hp_fdset_type_pun

Eliminate spurious type-pun warning during HP-UX GCC build.
Factor out comparray
Fix nfs.h inclusion guard
Fix communication.h inclusion guard
Remove config.h from logic_expressions.c, use platform.h
Speedup and improve isolation of acceptance tests

Each acceptance test used to generate a new RSA key, which added a lot of time
to acceptance test run time. RSA keys are actually used by just a tiny minority
of tests, so speed the things up by generating them only in the tests where it
matters.

Additionally, test suite pre-started several cf-serverd instances, also used by
a tiny minority of tests. Move startup/shutdown of those servers to the specific
tests itself. It also mean that actions of one test may not affect behaviour of
cf-serverd in another test.

Conflicts:
	tests/acceptance/16_cf-serverd/01_start/prepare_tests.srv
	tests/acceptance/testall