Add HMC5983 I2C driver
Windows Packaging: include QtQuickWidgets

windeployqt doesn't include this automatically.
Merge pull request #1416 from peabody124/windows_packaging

Windows Packaging: include QtQuickWidgets
hmc5983 cleanup
Merge pull request #1414 from BrainFPV/hmc_5983

HMC5983 I2C driver
Flight-STM32FXXXx DSMx drivers,added autodetection of channel resolution

Credit goes to Mathieu Rondonneau from the OpenPilot project.
Changeset:1c6ac29
Flight-All targets, remove DSM handle based on proto
Shared-Make DSM the only option instead of DSMX for all targets
Ground-Board plugins use DSM only instead of DSMX... for input type
Ground-SetupWizard use DSM only instead of DSMX... for input type
Flight-Bump DSM driver authors year to 2014
UnitTest: tests for DSM protocol

Verifies that the DSM protocol will decode both
10 bit and 11 bit packets.

Note that it currently segfaults when processing
an invalid packet. This behavior would happen
on real hardware too.
UnitTest/DSM: switch back to 10 bits when necessary

Also make sure never to have multiple calls to reprocess
the data. This can lead to ininite calls and crash the
system.
DSM: more robust detection of resolution

This allows switching back and forth between 10 and 11 bit
code which prevents getting locked up in one or the other.
It also avoids a situation that can cause an infinite
recursion.
UnitTest/DSM: make calling API match real code
UnitTest/DSM: tests match protocol of DSM code
UnitTest/DSM: add captured logs from DX7 and DX18

These logs were parsed from the files from Paparazzi wiki.
http://wiki.paparazziuav.org/wiki/DSM#Raw_DSM_data_capture_files

Parsed with Saleae logic using 115200 baud rate and exported
as hexadecimal records.

Note that there do not appear to be any data files that contain
10 bit resolution.
DSM/UnitTest: run tests on recorded log files
UnitTest/DSM: add log from my DX7 in 10 bit mode

We had no real data coverage of 10 bit mode. The packet
sequence for this data is:

 Packet 0 -> 1,5,4,2,6,0,3
DSM/UnitTest: check starting processing on odd packet

Because data has alternating packets and depending on
power up timings could start on either one, verify that
parsing these works reliably.