Dictionary::read now checks if a WordType is already entered. Use ::at() instead of ::find() in Dictionary::lookup.
WordTokens are now sorted by position instead of string value, this makes it more efficient to insert them into a map, since they're presorted when they arrive from a text. Some cleanup and style changes in Text::open
A WordToken now has a list of the sequences it appears in. Since it's an index, it's mutable and all related functions are const.
Cleanup and coding style related changes.
It should work correctly now.
Threaded dictionary induction added.