Rollup node: asynchronous refutation games
What
This MR makes playing the refutation games completely asynchronous with the rest of the rollup node.
Depends on !11825 (merged).
Why
This way, an operation that is taking too long (such as a IO like a network call, or even a non-interleaved catching up of the L2 chain) or an unexpected failure in the main loop of the rollup node cannot prevent a rollup node from playing refutation games. This change removes some attacks that were possible on the rollup node (to make it timeout on a refutation game and forfeit the operator deposit).
How
The refutation coordinator is called by an independent and asynchronous loop which monitors new L1 blocks on its own.
Manually testing the MR
dune exec tezt/tests/main.exe -- -f sc_rollup.ml refutation