Refactor console sending code once again.

Writes to console are now always buffered. That simplifies sending quite
a bit and allows functions in usb code itself to use the DEBUG() macro.
Put debug messages in progmem.