usb: simplify descriptor definition
usb: keep track of function iface and ep offset
usb: pass correct transfer length in tx callback
vusb: more debugging output
vusb: implement URB unlinking
usb: add cdc-acm
schematic: don't use identifiers in comment

They just change under us and become stale.
hardware/Makefile: kicad schematic plots changed name
programmer/buspirate: make @outbuf an array

ruby-2 will convert integers pushed into a string to utf-8 symbols,
thereby changing the data/commands we are sending.  use an array to
prevent this.
programmer/gdbserver: implement extended remote

This allows use of `target extended-remote :1234', which in turn allows
use of the gdb command `run', which will reset the system.
hardware: use proper field marker for optional parts
hardware/Makefile: add target to print BOM
programmer/gdbserver: close connection on detach
lib/mchck: add crit_enter/exit
lib/usb: move clock initialization to usb_enable
lib/usb: add usb_pipe_enable/_disable
usb/kinetis: use USB_MAX_EP
usb: do nothing in usb_clear_transfers

Not sure what this is supposed to do - USB spec says to stop all
transfers, but what does this imply?  Definitely removing
all (queued) (rx) transfers will break things.
usb/cdc: use uint8_t instead of char arrays
examples: add usb-serial-loopback