Incomplete Graph classes

Includes an interface a Graph class and contains helper methods for
modifying the graph.