feat: add `addEdge` to `grind order`

This PR implements the function for adding new edges to the graph used
by `grind order`. The graph maintains the transitive closure of all
asserted constraints.
6 files changed