Match annotator should annotate the longest possible matches
Match annotator should annotate the longest possible matches

A trie node being a `Terminal` does not necessarily mean there are no
more children below it. This commit changes the logic such that when a
Terminal is encountered, we save a candidate Annotation, an Annotation
that should be emitted only if we cannot find a longer match.

ericfreese/rat,ericfreese/rat