Move endpoint definitions to include files (they are now needed outside in usb_serial.cpp)

Signed-off-by: Manuel Odendahl <wesen@ruinwesen.com>
Handle sending 0 byte packets.

Added a flag to see if we are currently waiting on an interrupt to acknowledge the sending of the current
IN packet.
Added a method usb_cdcacm_is_transmitting() to check for that flag.

Signed-off-by: Manuel Odendahl <wesen@ruinwesen.com>
Check if the last packet sent was the full endpoint size, in this case flush the host buffers by sending a 0 byte packet

Signed-off-by: Manuel Odendahl <wesen@ruinwesen.com>