refactor(maintenance): move the message into the update timeline master
A maintenance now works like a status report: creating one posts the message as the first `maintenance_update`, `message` on read is the newest update, `message` on update rewrites the newest one, and the last update cannot be deleted. The `maintenance.message` column stays as a create-only mirror until a follow-up drops it; migration 0092 backfills one update per existing row. - services: create returns `{ maintenance, initialUpdate }`, list/get derive `message`, `latestMaintenanceUpdate` helper - RPC v2 / v1 REST / agent tools keep their fields with the new meaning; v1 get/list/put derive and rewrite via `v1/maintenances/updates.ts` - ui blocks render updates oldest-first, `message` optional as fallback - status page feeds and markdown list updates, dispatcher uses the newest - importers date the first update at the window start - dashboard: single timeline composer, message only in the create sheet - docs, seed, OpenAPI v1 document, tests