Ignore .test files
Build full-depth trie and then pre-walk the back-off chain

The previous algorithm is wrong when some suffix of an added
higher-order n-gram is not an added lower-order n-gram. For example,
when "
 a a a a" is in a 5-gram model while "a a a" is not. The old
algorithm creates state "a a a a" regardless and leads to free "a a a"
transition (e.g. in "
 <unk> a a a", the last transition should have
score log(0) instead of 0). Building full-depth trie solves this
problem at the price of using more memory (the number of states
initially might double; the number of transitions remains unchanged
however).

As a first step to later reduce the number of states, pre-walking the
back-off chain is implemented. In *Builder.link(), now we link a state
to its first back-off state with at least one lexical transition,
summing the weights along the way.