Fix: linkify #hashtags and bare URLs in post bodies for on-site display
The website showed raw '#tag' and URL text in post bodies; only the
federated (Mastodon) copy got links, via buildNote. Add a shared
linkifyBody() that reuses the exact same linkHashtags()/linkUrls() rules and
apply it in the post render pipeline, so the site and the federated copy
agree. Idempotent (splits out existing <a>), so editor links and autoembeds
are never double-wrapped; hashtags point at the site's own /tag/<slug>.
@mention display-linking is deferred (needs a per-render webfinger lookup).
This is the first step of the compose/display pipeline unification; buildNote
should later call linkifyBody too so there is a single content pipeline.
Co-Authored-By: Claude Opus 4.8 <noreply@…>