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.
README: Add CDC-ACM to the README
cdc: INF file fixes

Add a .NT. on DriverInstall sections as it is apparently necessary.

This fixes a problem where Windows was only receiving
every 2nd transaction of input data until some amount of data had been
sent.
usb: Clear endpoint 0 stall manually on PIC16 and PIC18

The datasheets say that endpoint 0 stalls will be cleared automatically by
the hardware when a SETUP packet arrives.  This does not happen on PIC16
and PIC18 MCUs, but does on PIC24 and PIC32.
Merge pull request #1 from signal11/master

Merge in signal11:master