Add web file download with client-side decryption [CL-147]
Fetch encrypted blobs from PDS, unwrap content key via WASM worker,
decrypt client-side, and trigger browser download. Extracted shared
authenticatedRequest core from api.ts for blob fetching. Context menu
on file items with configurable dropdown alignment.