Levels

This data type represents a path-compressed copy of one level of a source
data structure. We can safely use path-compression because we know the depth
of the tree.

Path compression is performed by viewing a Level as a PATRICIA trie of the
paths into the structure to leaves at a given depth, similar in many ways
to a IntMap, but unlike a regular PATRICIA trie we do not need
to store the mask bits merely the depth of the fork.

One invariant of this structure is that underneath a Two node you will not
find any Zero nodes, so Zero can only occur at the root.