bootloader-update-dfu: use usb interrupts
usb: add usb_ep0_tx/_inplace_prepare
usb: synthesize serial number descriptor
DONE: multiple USB identities
toolchain: use depend files
toolchain: do not use lto linker plugin

This is required for the GCC ARM Embedded toolchain, which by default
uses a linker plugin for LTO, which in turn prevents us from packing the
sections.
Reroute for 0.6mm vias