9015fa2d

Created Started Cancelled

Number the mutation progress lines by how many have started

The `[X/Y]` counter on a mutation run's progress lines was each mutation's
position in the manifest, which is no longer the order the mutations are tested
in: the groups run concurrently, and the most expensive of them are started
first.  A run's log therefore read like this:

```
[  23/2850] Testing mutation RemoveAction at src/NixCI/Leader/WebServer/Foundation/RepoUrl.hs:165:5-59
[  24/2850] Testing mutation RemoveAction at src/NixCI/Leader/WebServer/Foundation/RepoUrl.hs:164:5-61
[ 151/2850] Testing mutation ConstEmptyList at src/NixCI/Leader/SeatUsage.hs:83:42-61
[ 150/2850] Testing mutation ConstEmptyList at src/NixCI/Leader/SeatUsage.hs:66:3-87
[1197/2850] Testing mutation ConstNothing at src/NixCI/Leader/APIServer/Handler/GetSuiteWait.hs:93:82-86
```

Telling a reader how far along a run is is the only thing that counter is there
for, and numbers like those tell them nothing.

The number is now how many mutations have started, this one included, so it
climbs by one per line.  It is taken and written under the same lock, so the
lines reach the log in the order the numbers were handed out, and a `--debug`
run's per-mutation diffs arrive whole rather than interleaved with each other.

What this gives up is that the number no longer identifies the mutation it
belongs to.  Nothing needs it to: every line names the operator and the source
location, and the report names each mutation it has anything to say about by
id.

The counting and the writing live in `emitMutationProgress`, so the golden test
can run ten of them concurrently and show that the counter comes out as
`[ 1/10]` through `[10/10]` in order.

`nix flake check` passes.