usb: Add usb_endpoint_append_td

This implements the procedure for adding a TD to the end of an active
queue described in UM10503 Section 23.10.11.3.
usb: Begin shuffling transfer management to usb_queue
usb: Shuffle endpoint_schedule into endpoint_schedule_wait
usb: Refactor queue management
usb: Things enumerate
usb_queue: Add completion_cb arguments
usb_queue: Kill old declaration
hackrf_usb: Port to usb_queue
usb_queue: Use typedef
usb_queue: Cleanup
usb_request: Ensure control endpoint transfers get freed
usb_queue: Kill usb_transfer_schedule_wait
hackrf_usb: Port things away from schedule_wait
usb: Use usb_endpoint_is_priming helper
usb_queue: Transfer needs to be added to queue in both paths
usb: Check is_priming before loop
usb_queue: Assert that transaction succeeded
usb: Whitespace cleanup
usb_queue: Add new transfer after finding tail
usb_queue: Fix calculation of transferred