[RFC] libopencm3 merge

This branch incorporates a few small changes to port the hackrf firmware to mainline `libopencm3`. This pull request will just serve to track progress until the [merged](https://github.com/libopencm3/libopencm3/pull/174) libopencm3 [branch](https://github.com/bgamari/libopencm3/tree/lpc43xx) makes its way upstream.

In addition to the minor renames and Makefile changes necessary for the libopencm3 port, this set tries to clean up the USB configuration handling code, adds a `usb_endpoint_append_td` operation for adding a transfer descriptor to the end of the linked list, and starts to move high-level transfer descriptor operations to a new `usb_queue` namespace.

Comments would be appreciated.