Allow USBDevice::connect() to be non-blocking

It is required if USB is not the primary use of the device (eg: use
of USB mass storage to transfer pictures from the camera (the
device) to the host once in a while).