feat(news): ingest @artistnewsnetwork Bluesky headlines as external news-posts
- add news-posts.external schema + sparse unique index on external.postUri
- new backend module fetches trusted Bluesky accounts via app view and
projects external link cards / facet links into news-posts
- ac-news CLI gets a pull-bluesky subcommand for manual backfill
- silo runs a periodic ingest loop (default 10m) + admin endpoints
(/api/news/bluesky/status, /api/news/bluesky/pull) so future posts
auto-appear in the headline list
- SSR: external posts attribute to the Bluesky handle with a link to
bsky.app and a source badge, still commentable via the usual AC flow