Added ability to retrieve finishing order from depth first search.
Added ability for depth first search to be passed a list of nodes it should 
consider to be already explored.
Implemented strongly connected components calculation using 
Kosaraju's method.
Added method for determining whether a graph has an edge based on the
node's ids.
Added ability to build directed graphs from adjacency lists using 
GraphBuilder.
Created TestUtils class with methods for reading test files.
Added acceptance tests for reading in adjacency list graphs and checking
SCC sizes.
Added SCC acceptance test with self loop.
Added assignment 4.