Renames KeyValuePair to KeyTreeNode
Adds superset search in addition to subset search. Moves searching to be done by the nodes, reducing the absurd 2^n complexity of the powerset-then-lookup method.