parse: add symbolOnly combinator

The need for this combinator arises when we use our `choice'`
combinator. In the case of `effectsParser`, we feed it a list of symbols
to parse; however, if we just use `t_symbol`, we run into the case
where, parsing for

"damage"

results in a successful parse of the word "damage-cold" or any other
word that shares the same prefix, because `t_symbol` *optionally* parses
for any whitespace after the symbol. A workaround is to make sure we
parse the long-form words first (e.g., make `choice'` try to parse
"damage-cold" before trying out "damage"), but this is ugly and requires
manual labor.

The solution is the new `symbolOnly` combinator; it parses for the given
stirng, and then requires that it be followed by some whitespace. Thus,
we avoid the issue of "damage" be parsed from the text of "damage-...",
and we don't have to manually reorder the arguments to `choice'`.
remove compilation warnings
Main: load AffixDB
remove dead code