firmware: cleaning up
commandline: change usb requests to "out" if no data is requested

zero sized "In" requests require more handshaking, but do not add more
error checking or more security.
firmware: Removed trampoline and INT patching
commandline: reset vector patching in commandline tool
firmware: reset vector patching in commandline tool
commandline: Support for new v2 transmission protocol

The block transfer is now done in the address and indexfield of a
setup-packet to save a lot of memory in the firmware:
This requires twice the number of transmissions, but is effectively
faster due to less bus congestion and resends.
firmware: Crt1.s only needs reset vector.
firmware: size optimization of usb driver

- removed code for replies from SRAM. The new protocol does not need
this
- only use zero initialized global variables to avoid having a data
section
firmware: fix a timing bug in the usb driver

SETUP/DATA timed out under Linux
firmware: clean up of main.c
firmware: clean up