Represents a node UI that can be the end-point of a dependency,
and/or that can contain other DiscoveredDependables nested
within it.

These are typically used in a selection dialog where a tree of Dependable
objects need to be shown to the user. Each node in the tree is a DiscoveredDependable
which composes a DiscoveredDependable.DefaultDiscoveredDependable, and the underlying Element, to which
the Dependable points. The entire tree is constructed by calling
DependableFactory iteratively for each Node.