Add libopencm3 submodule
Build against libopencm3 submodule tree by default
usb: Rework configuration change notification
Bump libopencm3
Fix NVIC interrupt macro names

In libopencm3 master the NVIC macros are prefixed with NVIC_ not
NVIC_M4_
Ensure that LPC43XX is defined for libopencm3
A few more changes due to the libopencm3 merge
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.
firmware/: Use uint32_t instead of u32
usb: Begin shuffling transfer management to usb_queue
firmware/: Update #includes for libopencm3 merge
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