Makefile tidiness:

 * autoconf-compatible installation directory variables
 * format all variable definitions for readability
 * turn up the warnings a small notch (-std=c99 -pedantic)
   - -D_POSIX_C_SOURCE=200112L temporarily needed for strtok_r
 * remove warning options redundant with -Wall or -Wextra
String constification step 1.

 * enable -Wwrite-strings, fix all fallout
 * make 'struct dlist_el' store a constant pointer 'val'
If this is gonna be a shared library it needs a stable ABI, 1/2:

 * always provide printTldTree().
If this is gonna be a shared library it needs a stable ABI, 2/2:

 * dkim-regdom.h: Only declare loadTldTree, freeTldTree, printTldTree,
   getRegisteredDomain, and getRegisteredDomainDrop. loadTldTree
   replaces readTldTree; it does not take any arguments.  All tldnode*
   arguments changed to void*. All data type declarations moved ...
 * dkim-regdom.c: ... here. Also include tld-canon.h here. Change to
   match above.
 * test-dkim-regdom.c: Make sure to call all five of the exposed APIs from
   dkim-regdom.h.  Other structural and style cleanups.
 * Makefile: Link test-dkim-regdom against the shared library instead of
   recompiling it. Give the shared library a soname.  Correct .c:.h
   dependencies.
String constification step 2: public API.
Fix memory leak in test-dkim-regdom.c.
Mechanically reformat dkim-regdom.c with sane indentation.
Less mechanical style improvements.

 * Don't cast the return value of 'malloc'.
 * Struct names match typedef tags.
 * Proper placement of pointer asterisks.
 * Remove unnecessary blank lines.
 * Remove unnecessary curly braces.
 * Remove unnecessary logic in freeTldTreeI.
 * Don't use NULL.
 * "!x" instead of "x == 0", "x" instead of "x != 0", except where it
   really is a numeric comparison.
Make num_children unsigned.
Remove most uses of strcpy and strcat.
Replace ad-hoc test with official test vectors.