The DependencyGraph structure builds an internal Directed Graph, which can then be traversed
in an order which ensures that dependent Nodes are visited before their parents.
Wrapper around dependency graph nodes.
Since a graph might have dependencies that cannot be resolved internally,
this wrapper is necessary to differentiate between internally resolved and
externally (unresolved) dependencies.
An Unresolved dependency does not necessarily mean that it cannot be resolved,
only that no Node within the graph fulfills it.