RecoveringParseRunner: ensure correct return value of its inner MatcherVisitor

The default value is not null but ImmutableList.of(). Return that instead.
Trie{,Node,Matcher}: add "is start char" methods for IsSingleCharMatcherVisitor

CustomMatcher has this method defined but not AbstractMatcher. More generally,
the inheritance of Matchers is rather messy and needs to be reworked.

Test this method.
Implement MatcherVisitor for all of TrieMatcher