Just use maps (and sets) for the sub tree

If I use `nil` as a key meaning "end of topic", the tree can simply be
nested maps. This makes insertion a lot easier, as well as other
advantages, e.g., being amenable to walk, printing nicely.

`remove` is also more than a one liner, because there's no analogue to
`update-in`.