Make methods public. Fix bfs as it was completely wrong
Add a Graph trait so we can have one implementation of BFS. REname Graph type to UnGraph.