Fix vulnerability statistics inflation from non-default tracked branches
## Summary
When `vulnerabilities_across_contexts` is enabled and vulnerabilities are ingested for non-default tracked branches, all three statistics update paths count non-default branch vulnerabilities in the project's `vulnerability_statistics` and `vulnerability_historical_statistics`. This inflates severity counts, letter grades, and historical trend charts on the Security Dashboard.
## Problem
Three code paths update `vulnerability_statistics` without filtering by tracked context:
1. **Full recount** (`Vulnerabilities::Statistics::AdjustmentService`) — `STATS_SQL` counts all `vulnerability_reads` regardless of branch
2. **Pipeline ingestion** (`Security::Ingestion::Tasks::IngestVulnerabilityStatistics`) — iterates `severity_counts` which includes all tracked contexts
3. **Individual state changes** (`Vulnerabilities::StatisticsUpdateService`) — applies stat deltas for any vulnerability regardless of branch
## Solution
Filter each path to only count default-branch vulnerabilities:
1. Add a `LEFT JOIN` to `security_project_tracked_contexts` in `STATS_SQL` with `WHERE tracked_context_id IS NULL OR is_default = TRUE`
2. Use the existing `default_branch_severity_counts` method for the statistics upsert
3. Add an early return in `StatisticsUpdateService` for non-default branch vulnerabilities
Changes are applied unconditionally (no feature flag gate) because the filter is a no-op when only default branch data exists.
This implements **Option A** from the historical stats analysis — scope statistics to the default branch now, then implement per-branch statistics (Option B) when multiple branch tracking is fully rolled out.
## References
- Related to https://gitlab.com/gitlab-org/gitlab/-/issues/578047
- Related to https://gitlab.com/gitlab-org/gitlab/-/issues/555991
issue