Add follow/unfollow button to profile pages
Signed-in users can now follow or unfollow the profile they're viewing,
with an optimistic-update Alpine component backed by a new /api/follow
endpoint that writes app.bsky.graph.follow records via the viewer's
OAuth agent. The profile controller fetches viewer.following state in
parallel with the existing getPosts call. The button shows "Unfollow"
in red on hover/focus when already following.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>