Coves frontend - a photon fork

feat(community): render !name@origin and Lemmy-style canonical /c/ URLs master

Communities now display as !name@origin (e.g. !gaming@coves.social, !comicstrips@lemmy.world) from the origin field the AppView serves, with a handle-derived fallback for older responses. Web converges on the @ convention mobile already used. URLs follow Lemmy: /c/gaming for communities on this instance, /c/name@origin for remote ones; legacy DNS-handle and DID URLs 302 to canonical after load. Changes: - origin? on CommunityRef/CommunityView; CommunityRef.handle optional - communityMention/communityAddress formatters (single implementation) - canonicalCommunityParam + communityRouteParam/communityLink; all community hrefs built through them; PUBLIC_INSTANCE_DOMAIN (fallback: hostname of PUBLIC_INSTANCE_URL) decides local vs remote - /c matcher accepts DID, handle, name@origin, bare name; /profile and /u moved to a strict actor matcher; community names are DNS labels - 302 (not 301) redirects; AppView 400 on unknown form -> 404 page - 1437 tests; lint and svelte-check clean Requires AppView >= 563d23d (origin field, name@origin resolution). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>