Add feature to download ISO/IMG files directly to JetKVM storage from a
URL. This addresses the use case where remote deployments have slow
upload speeds, making direct URL downloads significantly faster.
Backend changes:
- Add DownloadState struct for tracking download progress
- Add rpcDownloadFromUrl, rpcGetDownloadState, rpcCancelDownload RPCs
- Implement streaming download with 32KB buffer and progress tracking
- Broadcast download state events to connected clients
Frontend changes:
- Add DownloadFileView component with URL input and progress display
- Add "Download from URL" button in Device Storage view
- Auto-extract filename from URL for .iso/.img files
- Poll-based progress updates with speed calculation
- Support for download cancellation
Fixes#727