cdc_vcom: fix the bug that use ringbuffer pool as usb packet buffer

This commit set the buffer for packet to CDC_MaxPacketSize which is a
reasonable value for it. However, maybe we should make
CDC_{RX,TX}_BUFSIZE configurable as well.
cdc_vcom: send a zero-length-packet at the end is transaction
usbdevice/core: misc cleanup
cdc_vcom: send data as many as possible

The data filled into dcd_ep_write does not to be limited by
MaxPacketSize.
usbdevice/core: small optimization on the event loop

Sort the switch cases by the frequency of the events.
cdc_vcom: not to start sending data when the data is already sending

We start the sending transaction in SOF handler. But if the data is
already sending, start an other transaction will cause data lose.
Implement a state machine is cdc_vcom and avoid that.
Merge pull request #85 from grissiom/fix-usb-serial

Fix usb serial