Linux: Don't set the USBFS_URB_SHORT_NOT_OK flag on the last urb

* Closes #142
Windows: Update transferred data on timeout or cancel.

* When handling aborted transfer it's possible that some data (but not
  the full buffer) was transferred.
* This change ensures that this partially transferred data is recorded
  and passed up to the caller.