Avoid setting configuration to zero on tests.

According to USB spec, setting a configuration to zero will put the
device back in address state and make it accessible only through the
default control pipe. But there are some buggy devices which actually
have a valid configuration *0*.

If we can or cannot set the device configuration to zero varies
according to OS kernel, usb library and device. So, we avoid setting
configuration to zero during regression tests.
More detailed control write failure test report.
Experimental openusb support.

This commit introduces a mostly usable support for openusb [1]. Known
issues include lack of isochronous transfers and hanging of some control
requests.

[1] http://openusb.sourceforge.net