toolchain: fix vector numbering

The vector numbers from the Freescale header files are completely
bogus.  Use the reference manual data instead.
include/kinetis/sim.h: SIM uses 32 bit registers
lib/mchck: add bitband accessors
lib/mchck: add gpio lib
examples/blink: use onboard_led()
whitespace cleanup
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.
programmer: ruby 1.9 compat
bootloader/swd-adapter: simple bitbang swd adapter code
mchck.mk: set NO_LTO when DEBUG is set
lib/mchck/gpio: make inline functions static

This is required for -O0 compilation.
mchck.mk: really disable LTO for DEBUG builds