Visitor attachments across all channels

Visitors can now upload attachments from the widget, and they flow end-to-end across email, WhatsApp, SMS, and live chat. Files are served via signed S3 URLs, purged when a thread is deleted, and shown on the customer panel.