This class encapsulates/makes/manipulates objects that represent nodes
in a tree structure. The tree structure is not an object itself, but is
emergent from the linkages you create between nodes. This class provides
the methods for making linkages that can be used to build up a tree,
while preventing you from ever making any kinds of linkages which are
not allowed in a tree (such as having a node be its own mother or
ancestor, or having a node have two mothers).
