rewrote ordering algorithm to use something discussed with @stringertheory
included some sketches in the docs to explain how the ordering works
added a blurb about the deterministic ordering
re-worked the iter_graph algorithm
wrote a function to make sure an error message is displayed on any non-zero update to the EXIT_CODE
got rid of the UniqueOrderedList usage as the new iter_tasks implementation doesn't need that
merged in deterministic ordering