Use WinUsb when available to avoid driver IOCTL bugs.

This uses WinUsb when available by deferring reading device and config descriptors from GEN_PASS to DEV_PASS.