Prototype code for new config parser
Move str_is_uri() from dataformats.c to str.c

Add lots of URI unpacking functions as well.
Improve new config prototype, add LIST to schema
Move packet-related functions from dataformats.c to packetformats.c

So that dataformats.o can be linked into executables that don't have log.o.
Improve str.h and str.c

Move alloca_tohex() from serval.h into str.h so it can be used stand-alone.

Rename str_to_ll_scaled() to str_to_int64_scaled().  Add str_to_uint64_scaled()
and scale_factor().

Add a few more URI parsing functions.  Move some functions out of str.c and
into str.h as inline functions.
Re-organise Makefile header dependencies

Add str.h to list of Serval header files.  Make the NaCl objects not dependent
on Serval header files, so that the entire NaCl source does not get re-built
when editing serval.h or str.h etc.
Improve new config prototype code

Make config LISTs more flexible.  Start implementing existing config options:
directory.service (SID parsing), interfaces (better list logic).
Improve new config prototype code

Refactor to make opt_parsing() functions simpler for ATOM -- no need to check
for missing text or unsupported child nodes, or log parse failures.

Introduce NODE option which passes whole config_node struct to parsing
function.
Improve new config prototype code

Refactor and rename, improve logic for reporting unsupported nodes.
Improve new config prototype code

Finish parsing 'interfaces' old- and new-style.
Improve new config prototype code

Replace ARRAY() macro with ARRAY_ATOM(), ARRAY_STRING(), ARRAY_NODE() and
ARRAY_STRUCT().

Change parse function return value to flag bits, add CFEMPTY, rename CFMISSING
to CFINCOMPLETE, improve logic around mandatory struct items.

Renamed struct config_node to struct cf_om_node.
Add documentation comments for new config code
Improve new config prototype code

Refactor ARRAY_xxx() schema declaration macros to fix problem in ARRAY_STRING().

Add dna.helper.executable, dna.helper.argv and server.chdir to config schema.
Improve new config prototype code

Add optional validator functions for STRUCT and ARRAY parsing.  Tighten up
logic for parsing STRUCTs and ARRAYs and the result flags.  Improve
documentation in block comments.  Add CFUNSUPPORTED result flag.
Improve new config prototype code

Add label parser functions to ARRAY schema, use to enforce numeric argv labels
numbered from 1.
Improve new config prototype code

Implement dna.helper.argv array label validation.

Ignore comment lines starting with '#'.
Improve new config prototype code

Add monitor.socket and monitor.uid to schema.

Remove some deprecated warning functions.
Improve new config prototype code

The dna.helper.argv validation function now sorts the array in numerical order
of labels using qsort(3).

Add LABELLEN argument to ARRAY schema macros, to control the size of the
label[] string (was fixed at 41 chars before).
Improve new config prototype code

Add hosts.SIDHEX.{interface,network,port} config options.
Improve new config prototype code

Rework ARRAYs, replacing label string with typed key, declaring KEY and VALUE
independently.

Implement dna.helper.argv array using key of type unsigned short.

Implement mdp.iftype.<interfacetype>.tick_ms using key of type short for the
interface type code.