Now using a tree rather than a trie!
Strings are accessed via indicies, instead of copying.
Construction algorithm is linear in space, but poly in time.