As more people have been using this API, the need for some
clarifications has (no surprise!) came up.
Most significant is the halt processing, needed to make
Alan's "File Storage Gadget" (mass storage class, talks
to usb-storage and Windows) handle fault cases cleanly.
Gadget drivers can't halt IN endpoints until the FIFO is
emptied by the host ... virtually no hardware tries to
sequence the DATA and STALL packets by itself.