UsbDeviceHandleImpl must hold a scoped_refptr to UsbDeviceImpl.
When a USB device is disconnected the last reference to the UsbDevice
object representing it may be freed. Outstanding device handles should
retain a reference to the UsbDevice object until they themselves are
closed (which is done in UsbDeviceImpl::OnDisconnect). This call
releases the circular reference between UsbDeviceImpl and its open
UsbDeviceHandleImpl children.
Otherwise the UsbDeviceImpl will outlive the UsbDeviceHandleImpl and
UsbDeviceHandleImpl::GetDevice will attempt to call AddRef on an invalid
pointer.
BUG=447761
Review URL: https://codereview.chromium.org/
835313003
Cr-Commit-Position: refs/heads/master@{#310907}