Space optimizations on the DFA:

 * pack the length field of each state into the opcode byte if possible
   (a three-bit field covers all but about 200 states)
 * eliminate BRANCH4 and LITERAL4, which were never used; in fact, the *3
   variants are not used either, but we keep them around for future-proofing
 * there is now a 'compact' branch state format, for when all destinations
   are the same 1-byte offset (this actually happens! mostly with stop codes)
 * take advantage of THIS-matches never being a proper prefix of any other
   match, and recycle that stop code as a "special" code; this allows us to
   express LITERAL(1,0) 'x' as a single byte (this happens because destination
   merging inhibits chain merging).

Overall, .rodata shrinks by 6433 bytes (to 37004), but the code is a
little more complicated, so .text grows by 144 bytes (to 1191).  The
resulting object file is 39,064 bytes; compare the source,
effective_tld_names.dat, at 77,382 bytes not including comments.

Also add a verbosity toggle for compile_tlds.py.