GCS: Add board plugin for taulabs

Currently this plugin supports Freedom and Sparky.  This is required
for calibration to apply to the mags for them.
GCS Board Plugins: Removed TODO that meant nothing
Uploader: Use board plugin for getting the board name

Previously these were redundantly coded.

Conflicts:
	ground/gcs/src/plugins/uavobjectutil/uavobjectutil.pro
Uploader: Use board_plugin for image of boards
Board Plugin: Convert IBoardType->getBoardPicture() to QPixmap

Previously returned pointer but no need
Board Plugin: Fix image paths
Board Plugin: Store and use the specific HwBoard UAVO

Now the board plugin knows the name for the HW configuration
UAVO and the defaulthwsettingswidget queries this and tries to
use the correct one only instead of probing all of them.
Board plugin: export the deviceDescriptorStruct class

This lets the uploader plugin use this on windows.
TauLabs plugin: convert from qt5 to qt4 plugin

This needs to be reverted when merged into the qt5 tree.
Merge pull request #492 from peabody124/board_plugin_next

Board plugin
win usb: rebrand windows .inf file
usb pid: stop using Revolution's PID on ST eval boards

FlyingF3, FlyingF4 and DiscoveryF4 are all now using a "spare"
PID that is one of OP's allocation.  These should be migrated
to a more appropriate PID as soon as one is available.

Proper entries have been added to the Windows CDC driver .inf
file for these boards as well.
usb pid: stop using Revolution's PID for Freedom

Freedom board now uses the USB PID registered by James Cotton.

Windows CDC driver .inf file now has an entry for Freedom.
usb pid: provide Quanton's VID/PID in the Windows CDC .inf file
usb ver: stop putting arbitrary board ids into the version field

This removes an irrelevant extra ID value.

None of the TauLabs SW looks at the USB bcdDevice field for
anything.  The BOARD_TYPE field from board-info.mk is the
value that gets populated into the firmware-iap data and
is the authoritative ID for a board.
Misc Math tests did not include sharedapi

This is required since they include physical_constants.h
Merge pull request #496 from peabody124/sin_test_fix

Misc Math tests did not include sharedapi
copyright header fixes
f4 usb hook: pass on length of the transfer instead of max length
usb pid: mark the unused CC3D PID as spare

The USB_PRODUCT_ID_CC3D was reserved for CC3D but didn't get
used because we made it use identical firmware to the CC.
The CC/CC3D differences are adapted to at runtime based on the
board revision:
  #define BOARD_REVISION_CC   1
  #define BOARD_REVISION_CC3D 2