usb: Only set the returning_short flag if a return is truly short

Short returns for control transfers need to have a zero-length
packet appended if the return is divisible by the endpoint length.

The previous logic would set the returning_short flag if a requested data
item was simply different than the length requested (either longer or
shorter).  This caused a zero-length packet to be sent in cases where it
wasn't appropriate, causing the next transfer to receive the zero-length
packet and thus fail.
usb, usb_ch9: Add the Interface Association Descriptor

This descriptor is defined by the document titled:
	USB Engineering Change Notice
	Title: Interface Association Descriptors
	Applies to: Universal Serial Bus Specification, Revision 2.0

One also really needs to see the document titled:
	USB Interface Association Descriptor
	Device Class Code and Use Model
usb_cdc: Communication Device Class - Abstract Control Model

Add support for the Communication Device Class, Abstract Control Model
(CDC-ACM).  This class is most commonly used for creating a virtual serial
port.
cdc_acm: Add CDC-ACM demo application

Demo for Communication Device Class - Abstract Control Model
cdc_acm: Add Windows INF file

An INF must be installed for the CDC demo to be usable on Windows.