Fixing broken Viterbi path bug, improving disk usage, adding tests.

- added inserted node for holes in Viterbi graph
- compaction of DoubleArrayTrie for less memory footprint
- separated part-of-speech into separate data structure for memory improvements
- fixed user dictionary bug
- improved test coverage