Don't skip empty transfers.
Update the fake libusb to honor the endpoint max packet sizes.
Update tests that were taking advantage of the fact that libusb
allowed unlimited amount of data in any transfer packet.
Adds ReadContext/WriteContext methods to endpoints and to streams. Update rawread example tool to use ReadContext for implementation of "timeout" flag.
* Store a reference to libusb implementation in the context, transfers
and some more places. Remove the global libusb variable.
* Parallelize tests.
* Fix the link in README.
* add alloc/free_transfer_and_buffer. Manages the buffer memory on the C
side.
* switch libusb.go to use the new alloc/free_transfer_and_buffer. Add
a new buffer() call to get access to the allocated buffer as a Go slice.
* Fake USB transfer uses the new alloc/free/buffer interface.
* Switch to the new libusb.alloc signature, where libusb owns the buffer.
* newUSBTransfer now allocates a separate buffer, do a copy on
endpoint.transfer.
* newUSBTransfer will now allocate it's own buffer.
* Enable autodetach in rawread.