Added regular expression grammar filtering with trie short-circuiting, but it's slower, so we're keeping the old implementation.

The new method walks the original grammar trie, finds every RuleCollection, and
matches the source side of that collection against the input sentence. If there is
no match, we stop at that trie node, otherwise we continue.

The old filtering method walked the trie for each sentence position, attempting
to match each node against the input sentence trie node by trie node.