extra utility added to Graph.hs
fleshed out Directed graph and changed Undirected graph to used the Directed graph as a hidden layer
finished fleshing out base implementation for the Graph class. Converted Undirected and Directed graphs so they use the default functions in the Graph class