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.
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.
Merge pull request #437 from peabody124/board_plugin

Tau Labs board plugin