Improve IntoEdgesDirected and edges_directed for undirected graphs
This aligns edges_directed for undirected and directed graphs: in particular,
for incoming edges, the provided node will always be the target.
The `Edges` iterator implementation wasn't well suited for this change, so I
ended up rewriting it in what should hopefully be a more understandable
fashion.
This is a breaking change -- third-party implementations of IntoEdgesDirected
may have to be updated.
This allows implementing `IntoEdges` and `IntoEdgesDirected` for reversed
graphs -- that will be done in the next commit.
6 files changed