port connected components to new Graph
add 'Graph::Directed'/'Undirected' constructors