Both citation.tsx and citation-list.tsx defined identical TYPE_ICONS
maps. Extract into a shared type-icons.ts to eliminate duplication
and reduce bundle size from duplicate Lucide icon imports.
Fixes#1190
- Replace raw <img> with Next.js Image in markdown-viewer.tsx
- Use next/image with fill + sizes in assistant-ui image.tsx
- Optimize favicons with explicit dimensions in citation components
- Set unoptimized=true for data/blob URLs and external favicons