Explicitly specified the type of graph that may be represented with the given classes.
Added a missing essential test in IteratorTest suite.

I have already created sample test data for an cyclic graph but I did not use
it for any assertion. Clearly a forgotten test case. The test using this cyclic
graph has been added and the relevant fixes for it to pass have been made.
Added graph_algorithms module.

The sole algorithm for it right now is acyclic graph detection.
Added TODO note for removing connection between nodes.

I need this functionality for easier testing of graph_algorithms, is_acyclic in
particular right now.