Suggested by David Zeuthen. This allows multiple libraries in the same process to independently use libusb without interfering.
This wasn't a particularly nice API. Cancellation should be handled by the completion handler.