The three error types in this file declare `errorDescription` but conform
only to `Error`, so the description is never consulted. `downloadUTMZip()`
alerts with `error.localizedDescription`, which for a plain `Error` falls
back to "The operation couldn't be completed. (UTM.UTMDownloadVMTask...
error 1.)" -- the localized strings here have never reached a user.
Conform them to `LocalizedError` instead, matching every other error type
in the codebase. No other type has this defect.
`CreateUTMFailed` is currently unthrown; it is included so the three stay
consistent rather than leaving one behind.
Assisted-by: Claude:claude-fable-5-1