Implement add edge steps r3

@mhfrantz 

This PR supercedes PR #20. The only change is to rebase after merging PR #21. I am not changing the addEdge unit tests here for reasons we discussed, but am open to improving them in the near future.

[Delivers #83357838]