Token: add original field to store original token
LowerCaseFilter: use original token
EdgeNGramFilter: use original token field
EdgeNGramFilter: fix bug when min == max
TokenFilter: original point top most original

nextToken() original field should point to top most original token in
decorator hierarchy
NGramFilter: rewrite algorithm