Track libusb_transfer lifetime in a separate class.
This change makes UsbDeviceHandleImpl::Transfer a full class that is now
responsible for the lifetime of the libusb_transfer object that it
holds. Accessors are provided to make it easy to construct the right
type of transfer. The pointer back to the UsbDeviceHandle is weak so
that if a transfer outlasts the object that owns it the completion will
be safely discarded.
BUG=434800
Review URL: https://codereview.chromium.org/
749473003
Cr-Commit-Position: refs/heads/master@{#306268}