Replace ad-hoc C test with official test vectors. Update effective TLDs.

The official test vectors go hand in hand with the official dataset, so
it was necessary to update both in lockstep.  Not all the tests pass, due to
a minor bug in the code (will be fixed shortly).
Remove 'dkim' from all file names.
Don't allocate any memory during lookup.

The registered domain is always a suffix of the input domain, so we can
just walk backward through the input string until we find a match, then
return a pointer to the beginning of the match.  The matcher is now
shorter, nonrecursive, and more efficient.  This change also fixes the
test failure mentioned in rev e5231455fea59cc0b3b315ab16db027d7347c69f.

*API CHANGE:* Caller of getRegisteredDomain(Drop) now gets back a pointer
into the middle of the string it passed in, *not* a new malloced string.

This also removes the only use of strtok_r, which was the only non-C99
library routine used.
Compact 'struct tldnode' a bit, and remove some stupid:

 * 'attr' can be a char rather than a pointer.
 * Pack 'num_children' and 'attr' into one word.
 * readTldString: Use strtoul to decode number of subnodes, rather than
   malloc+copy+atoi.
 * printTldTreeI: Print all fields regardless of number of subnodes.
   Use a VLA for the new spacer, not a fixed-width stack buffer; don't
   use sprintf.