Add unit test for C-style interfaces
Sort HKVariantsRevPhrases.txt
Not sort lexicon when loading Darts dictionary

Before this change, the constructor of TextDict sorts lexicon even it is
known sorted. This decreases the loading time of DartsDict.
Make DictEntry immutable
Add unit test for DictGroup::MatchAllPrefixes

Also refine some code
Use pointer as the return type in dictioniay match functions

In order to imporve performance copies need to be reduced.
Optimize the performance of ParseKeyValues
Enable dictionary cache

Reduce duplicated loading to boost performance
Simplify Config
Optimize MaxMatchSegmentation::Segment

Use pointer instead of vector<string>
Remove GETTEXT residue
Reformat code using Clion
Optional::Null instead of the default constructor
Add docs for Dict and Optional
Implement template specialization for Optional<T*>
Fix node build for gcc 4.6
Add docs for some classes.
Update copyright
Add some docs and third-party in readme
Stop flushing if "-o" is set in CommandLine

This reduced lots of time if output file is large