The notification channels list silently ignores API failures. Add feedback and a retry action.\n\nFiles:\n- frontend/src/components/NotificationChannelConfig.tsx\n\nTasks:\n- Show a toast on fetch() failure\n- Render an error/empty state with a Retry button\n- Retry button re-runs fetch()\n\nAcceptance Criteria:\n- On API error, user sees an error toast\n- Retry button appears and works