Add class SuffixArray
Add class StringCounter
Use StringCounter to store substring statistics
Combine suffix array and trie
Use `boundary_` instead of literal constant
Optimize Segmenter::optimize_segment()
Restrict min_store_len_ = 1
Extract StringCounter::accumulate()
Avoid unnecessary copying of vector
Avoid counting lsp1 for substrings which occur only once
Fill 'cut positions' in the existing vector
Replace `tokens[j].size()` with `n`
Merge branch 'sufarr'