Tree::DAG_Node - (super)class for representing nodes in a tree
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).