Complete forward port to 3.13

These changes update the driver to something close to the 3.13 cdc-acm
driver. Not all changes have been ported.

Signed-off-by: Joel Stanley <joel@jms.id.au>