Add Ford-Fulkerson max flow algorithm.
Refactor `NetworkFlow`.
Make pathfinding respect undirected graphs.
Add distance calculation to BFS.
Remove redundant logging.
Make edge invariant hold on bipartite graph creation. Closes #9.