GCS Control: Make SDL optional

To compile with SDL joystick input support compile GCS with
make GCS_QMAKE_OPTS="CONFIG+=SDL" -j7 gcs
GCS Control: Remove commented code
Fix for excluding SDL
GCS Controller: Add an option to control via GCS Receiver instead
GCS Control: Update the GCS Receiver object
GCS: Also exclude sdlgamepad library when unused
SDL: Mask out more includes
SDL: Only copy the dll when used
usb: manufacturer string PhoenixPilot -> TauLabs.org

Adjust USB strings to match project name.
f1 usb cdc: ensure uart state is transmitted on control endpoint

Previously, the IN stage on the CTRL interface would write (and
send) its data via the buffer owned by the DATA endpoint.  This
would probably have overwritten any data being sent at that
moment.  This may have caused data corruption from FC -> GCS.
f3 usb cdc: ensure uart state is transmitted on control endpoint
usbhook: make ctrl endpoint OUT treat request as const

The req parameter is passed to the OUT stage as a convenience.
Since the OUT callback is called *after* the transfer has occurred,
modifying the req would have absolutely no effect.  Marking this
as const makes this expectation clear.
f4 usb: allocate TX FIFO RAM for endpoints 2 and 3

This is required to support USB CDC mgmt and data
endpoints.
f4 usb cdc: implement CDC class driver for STM32 F4 SoCs
usb: fix interfaces in USB HW defs for DiscoveryF4
usb: fix interfaces in USB HW defs for FlyingF3
usb: fix interfaces in USB HW defs for FlyingF4
usb: fix interfaces in USB HW defs for Freedom
usb: fix interfaces in USB HW defs for Quanton
usb: fix interfaces in USB HW defs for Revolution