edges: expose find_all_edges operation

find_all_edges will return all edges that exist between two vertices.
The find_edge function only handles the special case where there is a
single edge between vertices and will raise an exception of no edge
exists. It will not return additional edges that may exist.
Merge pull request #47 from frenetic-lang/edges

expose find_all_edges operation
Require all fields for Nodes specified in DOT files
More fine-grained attribute checks for nodes in DOT files
Tree and fattree generators produce topologies that pass stricter parsing
Minor edit to previous