Convert libusb-1.0.16-rc10 to libusbx-1.0.17
Fix trivial libusbx warnings.
Add libusb error warning message when significant error occurs.
Get statistics on how long usb reads and writes wait on the devlock.
Display stats regarding locking delays in API.
Revert libusb Makefile changes from going to libusbx.
Update libusbx configure.ac changes.
Add needed EXTRA_DIST for libusbx.
Use asynchronous transfers for all bulk transfers, allowing us to use our own timers and cancelling transfers that take too long.
Fake the libusb transfer timed out message if we force cancel it with our own async functions.
Remove zero packet flag on usb as it's unsupported outside linux and unnecessary.
Treat any unexpected timeouts waiting for async transfers as though there may be a usb halt condition and attempt to clear the halt before cancelling the tranfer.
Store statistics on how often we have to cancel async bulk transfers and add a debug message whenever we do.
Add API output displaying USB cancellations.
Merge branch 'master' into libusbx

Conflicts:
	api.c
	miner.h
	usbutils.c
Merge branch 'master' into libusbx
Make the devlock a cglock in usbutils and only grab the write lock for fundamental changes allowing us to send and receive transfers concurrently without lock contention.
Remove devlock lock contention statistics since transfers are all done under read lock now.
Check for continuous IO errors on USB and consider the device inactive if more than retry max.
Check for libusb transfer stall error to be consistent with async IO errors returned for a halt condition.