Add retries for the integration test asserts
We've hit a situation where we try to assert the final repo state, but github is not quite done digesting the data yet and returning a 404 when checking the commits (but when I manually checked out the repo 20 mins later it looked fine). This is causing the test assert to fail because it thinks the repo is uninitialized (which it probably is at that moment in time). But if the test just waited a few seconds it would probably sort itself out.
We could make our tests more robust by just wrapping the whole block of code that does the asserts into our retry library. If any asserts fail, just redo all the asserts (with the exponential backoff we have in our retry code).
Here's an example of a build failing because of this: https://github.com/github/gh-gei/actions/runs/4513628632/jobs/7948789505?pr=908#step:12:328

Another example where this would maybe have fixed it. The assert was failing because github said the target repo was empty. Giving a 409 response. We actually already had it doing 5 retries here, but when I manually inspected the repo many minutes later it seemed fine. So maybe retrying the whole block of asserts would have resolved it.
https://github.com/github/gh-gei/actions/runs/4620814591/jobs/8171509227#step:13:340

again: https://github.com/github/gh-gei/actions/runs/4661033313/jobs/8249873931#step:12:332
again: https://github.com/github/gh-gei/actions/runs/4668719279/jobs/8266264780?pr=952#step:12:293