feat(status-page): integrate external status providers into customer pages master
Let customers surface third-party providers (whole-service or specific components) on their own status page, in a separate, positionable "Third-party dependencies" section auto-grouped by provider and excluded from the overall banner/SLA. Catalog is fully DB-driven (no provider hardcoding); data reuses the existing external-status read path. - page_component gains an "external" type + externalServiceId / externalServiceComponentId FKs (null component id = whole-service row), enforced by a 3-way CHECK. Migration 0081; the generated INSERT...SELECT was hand-fixed (drizzle copied the not-yet-existing columns). - update-order generalises static handling to id-based (static + external), counted in the shared page-components limit (no plan gate); validates external refs by existence (not live-ness) so a soft-deleted upstream provider never blocks saving the layout. - new statusPage.getExternalSection (SSR-prefetched): whole-service status = worst of its components, falling back to the service-level latest for component-less providers; 24h staleness -> "No data"; provider links to the upstream status page. Service-level history/latest key by slug (the id the cron publishes), not the numeric id. - dashboard: third-party picker wired into the components editor. - deferred: subscriber notifications on external degradation.