Create a linked list of potentially cancellable usb transfers.
Pass the cancellable option to _usb_read options to decide on whether to add usb transfers to the list of cancellable transfers.
Alter the usb cancellable list only under cgusb_fd_lock write lock.
Specifically set the cancellable state for it to not be uninitialised in the usb transfer struct.
Add wrappers for usb_read_cancellable and usb_read_timeout_cancellable
Don't bother having a separate cancellable transfer struct for usb transfers, simply include the list in the usb_transfer struct.
Cancel cancellable usb transfers on work restart messages.
Use cancellable transfers on bitfury device.