coverage: decode baseline block positions with covdata

The baseline coverage action ran cmd/cover's legacy single-file mode
once per source file and parsed the position table out of the generated
Go source, because covdata was unavailable: Go 1.25 dropped the prebuilt
binary from the distribution, and the builder cannot decode a coverage
meta-data file in process since "go build" rejects the internal/coverage
imports.

Build covdata from the SDK's own sources instead, alongside pack, which
has been built this way since Go 1.25 dropped its prebuilt binary too.
The bootstrap action already primes a Go build cache with most of the
needed dependencies, so the extra build is cheap, and a covdata compiled
from its own SDK decodes whatever meta-data format that SDK emits by
construction.

With covdata available, the action instruments the package once with
-pkgcfg and EmitMetaFile, the mechanism "go test -cover" uses for a
package with no test files, and decodes the emitted meta-data file with
"covdata textfmt". Local mode records each source file under the
exec-root-relative name it was given on the command line, so the paths
come out right without any mapping. A package with no function bodies
yields an empty meta file, which replaces re-parsing the sources as the
structural signal that there is genuinely nothing to cover, while an
absent meta file still fails the action loudly.

This drops the AST parsing of generated cover output entirely and runs
two subprocesses per package instead of one per source file.

Claude-Session: https://claude.ai/code/session_01CV2HNHjbahhjHBtW8N5Cfo
6 files changed