TernaryMap: A prefix-tree map implementation

Finally finished writing a bunch of tests for coverage, plus I wanted to have sub-key iterators. Let me know what you think.
The `List<int>` return type smells a little to me. Is it common to need depths, and both max and min depths at the same time? Can be split into two methods?