Fetch concurrently for non-first-match index strategies (#10432)
## Summary
On a basic test, this speeds up cold resolution by about 25%:
```
❯ hyperfine "uv lock --extra-index-url https://download.pytorch.org/whl/cpu --index-strategy unsafe-best-match --upgrade --no-cache" "../target/release/uv lock --extra-index-url https://download.pytorch.org/whl/cpu --index-strategy unsafe-best-match --upgrade --no-cache" --warmup 10 --runs 30
Benchmark 1: uv lock --extra-index-url https://download.pytorch.org/whl/cpu --index-strategy unsafe-best-match --upgrade --no-cache
Time (mean ± σ): 585.8 ms ± 28.2 ms [User: 149.7 ms, System: 97.4 ms]
Range (min … max): 541.5 ms … 654.8 ms 30 runs
Benchmark 2: ../target/release/uv lock --extra-index-url https://download.pytorch.org/whl/cpu --index-strategy unsafe-best-match --upgrade --no-cache
Time (mean ± σ): 468.3 ms ± 52.0 ms [User: 131.7 ms, System: 76.9 ms]
Range (min … max): 380.2 ms … 607.0 ms 30 runs
Summary
../target/release/uv lock --extra-index-url https://download.pytorch.org/whl/cpu --index-strategy unsafe-best-match --upgrade --no-cache ran
1.25 ± 0.15 times faster than uv lock --extra-index-url https://download.pytorch.org/whl/cpu --index-strategy unsafe-best-match --upgrade --no-cache
```
Given:
```toml
[project]
name = "foo"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.12.0"
dependencies = [
"black>=24.10.0",
"django>=5.1.4",
"flask>=3.1.0",
"requests>=2.32.3",
]
```
And:
```shell
hyperfine "uv lock --extra-index-url https://download.pytorch.org/whl/cpu --index-strategy unsafe-best-match --upgrade --no-cache" "../target/release/uv lock --extra-index-url https://download.pytorch.org/whl/cpu --index-strategy unsafe-best-match --upgrade --no-cache" --warmup 10 --runs 30
```
Closes https://github.com/astral-sh/uv/issues/10429.