add NGramAnalyzer based on NGramTokenizer

not getting much out of the Lucene docs / googling. It seems I need a concrete instance of `TokenFilter`, but TokenFilter itself is abstract, so I’d have to subclass it first. Maybe I’m expecting too much :)