usb gadget serial: split out CDC ACM function

Split out CDC ACM parts of "gadget serial" to a "function driver".
Some key structural differences from the previous ACM support, shared
with with the generic serial function (next patch):

 - As a function driver, it can be combined with other functions.
   One gadget configuration could offer both serial and network
   links, as an example.

 - One serial port can be exposed in multiple configurations;
   the /dev/ttyGS0 node could be exposed regardless of which
   config the host selected.

 - One configuration can expose multiple serial ports, such as
   ttyGS0, ttyGS1, ttyGS2, and ttyGS3.

This code should be a lot easier to understand than the previous
all-in-one-big-file version of the driver.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

diff --git a/Documentation/DocBook/gadget.tmpl b/Documentation/DocBook/gadget.tmpl
index 478bfe1..b7e266c 100644
--- a/Documentation/DocBook/gadget.tmpl
+++ b/Documentation/DocBook/gadget.tmpl
@@ -556,6 +556,8 @@
 Near-term plans include converting all of them, except for "gadgetfs".
 </para>
 
+!Edrivers/usb/gadget/f_acm.c
+
 </sect1>