Do not require source and sink to build a residual network.

Since the residual network is the same for every pair of nodes, delegate
sanity checks on source and sink to algorithm implementations. This makes
build_residual_network easier to use in the connectivity package, and in
general.
Test all interface functions, add test reusing residual.
Readd cutset to residual in minimum cut for reusability.

This solution is not very nice but works.