Performs a topological sort on the graph of nodes passed in (which is expected to form a DAG), scheduling them. If there are cycles or unconnected nodes present in the graph, an error will be output for each node that failed to be scheduled.