Add a radix tree class.

It's used like an associative container, with keys being string data.
Elements are stored bitwise lexicographic according to keys.  Operations
are O(k) (i.e. related to length of key), independent of the size of the
container and support prefix-based lookups.  Paths in the tree are
compressed and use "adaptive" internal nodes to reduce the amount of
extra space required (e.g. makes sparse trees more space-efficient).