GraphsDS3 modified; DFS2 modified; begin Prim

In GraphsDS3, modified Graphs class to allow for a weight function to be
returned; uses the internally stored weight function, if any, or returns
a closure that scans edges for weight.

In DFS2, modified search to be more consistent in holding original edges
from original graph. Before, new edges were created each time possibly
leading to more headaches later since any extra information in each edge
would be harder to duplicate.
Allowed for DFS to preserve all original edges and categorize them to
treeEdges (@edgeSet), back edges, forward edges, and cross edges.

Beginning on Prim algorithm