usb-queue: Add flush utility
usb: Ensure endpoint queue is flushed on disable/init
usb_standard_request: Always call configuration_changed_cb

For reasons I don't entirely understand, bulk requests are suddenly
ignored after a SET_CONFIGURATION request (even if the configuration did
not change) unless the endpoints are reinitialized. This is done by
configuration_changed_cb, therefore we call it for every request.
hackrf_usb: Be more careful in transceiver_mode check
usb_queue: Add some interrupt disabling around critical sections
usb_queue: Mark queues as volatile
hackrf_stop_rx: First set mode, then kill transfer thread

Killing the transfer thread first means that the host stops polling the
device for reads, causing the device to hang while scheduling the dTD