oobmigration: Refactor runner
Created by: efritz
Clean up runner implementation in preparation for https://github.com/sourcegraph/sourcegraph/issues/18407. This changes the behavior slightly to favor calling Progress
early so that they can be pruned from the migration list when complete. This stops us from periodically calling Up
or Down
on a long-finished migration, which we assume is more expensive than a progress check.