Mostly confine assumptions about what token_t is to misc.c
The token_t things like WD* are presently longs and will someday be
char[6]. By introducing some trivial functions - wordeq(),
wordempty(), and wordclear() - we mostly hide the difference.
All runtime knowledge about packing now lives only in misc.c and the
list of magic WORD_* defines in advent.h. Outside this, literals are
now accessed through #define names that could expand to either longs
or strings.
Still to be done: WD* values are sometiimes compated to zero in
ways implying they can be negative. Must figure out wat thus means.