usb.c: rework probe loop to _not_ free all stuff without closing if _one_ probe failed.
usb.c: rework probe loop to _not_ free all stuff without closing if _one_ probe failed.

we return count and list of successfully probed devices, no need to free
everything if some libusb call of the last probe attempt failed.

simonjwright/stlink,simonjwright/stlink