Adjust nodes so that more data than just the project can be stored on it.
Forgot to add this a while back
Improve depthFirstSearch, traverseFrom, and collecAllLeavesStartingFrom methods so that you can pass in an array of starting points (instead of having to manually call it X times and keep track of nodes already visited).
First implementation of allNodesInReverseDependencyOrder.

That is used to calculate the order needed to build all dependencies in the tree before any of their parents (even with X projects re-using the same dependency, etc)