convey/entities: upgrade loading scaffold + migrate loaders (wave 2)
Upgrade the #entities-loading scaffold to the shared surface-state--loading
contract so SurfaceState.replaceLoading() can swap it in place on failure.
Preserve the legacy .spinner class on the new spinner element so existing CSS
still applies.
Migrate loadEntities() and loadJournalEntities() from raw fetch+then to
window.apiJson(), and replace the scaffold-polluting .error-message hack with
SurfaceState.replaceLoading() + errorCard() so failures no longer live inside
the loading slot.
Wave 2 bundle 1 of 13.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>