Provides an implementation of the `Linguist` that represents the search space as a lex tree. This linguist dynamically generates the search states based upon the lex tree. The lex tree is generated from the vocabulary supplied by the `LanguageModel`. The lex tree nodes contained 'compressed' hmm nodes. The final unit of a word is not expanded until search time. This avoids the large fanout that typically occurs at word endings, reducing memory consumption and startup time significantly.