Having the tests makes it easier to visualize what's going on, because we can
just look at the test output data. This is not foolproof, since one of the IO
helper functions could generate bad data to pass to the pure helper, but it's
better than nothing.
This refactors as much as possible to keep the PR description logic in the pure
`prComment` function, rather than computing it in multiple places, which also
increases out unit test coverage.
* it isn't necessary to run cabal2nix directly (developPackage) takes
care of that.
* the cabal file is committed, so it only needs to be updated when
adding dependencies or new files