Compares two benchmark results maps (baseline ref vs candidate ref) and decides whether the candidate regressed solution quality.
@spec analyze(map(), map()) :: %{ per_instance: [ExVrp.ABBenchmark.Comparator.Row.t()], missing: [String.t()] }
@spec compare(map(), map()) :: {:ok | :regression, %{hard_fails: [String.t()], warnings: [String.t()]}}