add GitHub harvest layer (PR resolve, run select, download) (#2302)
Extend lib/ci_evidence.py with the GitHub I/O for the evidence bundle, all isolated behind mockable functions that route through lib.github (reusing its transient-retry wrapper): resolve_release_pr, select_ci_run (completed+success only, ignoring cancelled/in-progress per spec 5.2), download_evidence_artifacts (ci-evidence-* filter, staged under dest//), and read_gate_conclusions. NoQualifyingRunError marks the one substantive-failure boundary. Relocate the merge/squash subject to PR-number extraction into lib.linkage as extract_merge_pr so vrg-resolve-tracking-issue and the harvester share one source of truth.