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).
Merge pull request #169 from oliviermartin/om/usb-device-connect-non-blocking

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