programmer: ruby 2.0 compat
lib/mchck: add memcmp
usb/cdc: don't automatically accept new data
lib/usb: use usb_poll() for polling
usb/vusb: properly implement pipe enabling
toolchain: check binary size after linking, not during
ubs: drop usb_clear_transfers
usb: don't stall tx pipe by default

We might get into a race condition, where the host reads an OUT
control status before we can get around to set a positive reply.  If we
stall by default, the host will get an erroneous STALL handshake
instead.
toolchain: link twice to properly pack sections

We need to know which sections the linker will discard, before trying to
solve the knapsack.  Link everything once to observe which sections will
be discarded, then link again with the non-discarded sections properly
packed.

We could probably only use the map file, and stop parsing objdump
output.