Many higher-level crates using the usb_device will want to implement embedded_io interfaces (for example usbd_serial.
To make this simpler it would be convenient if UsbError implemented embedded_io::Error, so it can be directly returned from implementations of embedded_io read and write traits.