toolchain: make lto optional
toolchain: link all of BSS
toolchain: more peripheral addressess
toolchain: extend bootloader block to 3KB for now
toolchain: add CTASSERT macros to mchck.h
programmer/kinetis: try magic stop automatically
programmer/adiv5: allow non-word size transactions
programmer/armv7: use and retry byte reads if word fails

Some peripherals require byte accesses, so we need to use byte transfers
occasionally.
usb-dfu: refactor Makefiles
usb-dfu: ugly wrap-up to make usb work

This mess will be cleaned up in subsequent commits.
programmer/flash: set ruby path
usb-dfu: use nice bitfields
usb-dfu: more nice bitfields
usb-dfu: usb works with internal resonator + FLL
toolchain,usb: library support megacommit, usb cleanups