PiOS Gimbal: check in stubs for gimbal control
SparkyBGC: Create brushless gimbal module

Conflicts:
	flight/targets/Sparky/Makefile
PiOS Brushless: hack updating phases
Brushless Gimbal: Update module to use roll and pitch

ActuatorDeired.Roll,Pitch are passed to the two gimbal output
channels.  Also the switching rate is now defined as 30000.  The
prescalar should be removed from the clock to keep more resolution.
PiOS Brushless: set enable lines and the scale values

The scale and center values are calculated based on the period
to keep the output in the mid voltage and use the full scale
range.  The scale should be also setable to use a subset.
SparkyBGC: Enable the brushless mode
Brushless: set timers to 36MHz to increase sin resolution

We need to initialize the timers differently for BGC mode so
instead of using a 1MHz clock with 1us resolution we use 36MHz
(highest supported by all timers) so 30ns resolution.

Conflicts:
	flight/targets/Sparky/System/pios_board.c
Brushless Module: use real units for rate limit
PiOS Brushless: attemp to move back to 30 khz

Unfortunately this locks up if we have to service the update irq
at that rate, even if we mostly just discard it.  Need to try
using an internal task.

Conflicts:
	flight/PiOS/STM32F30x/pios_brushless.c
	flight/targets/board_hw_defs/sparky/board_hw_defs.c
PiOS Brushless: use task for phase updates

This is instead of using the timer overflow events since
that was overwhelming the system.  Updating the phase at
1 ms steps should be sufficient.

Conflicts:
	flight/PiOS/STM32F30x/pios_brushless.c
PiOS Brushless: switch back to sinf instead of sin_lookup

Since updating at 1khz on a board with FPU we can afford this
and might improve sub-degree precision.

Conflicts:
	flight/PiOS/STM32F30x/pios_brushless.c
Brushless: reverse pitch and roll

This makes the labels match the channels.

Conflicts:
	flight/Modules/BrushlessGimbal/brushlessgimbal.c
Brushless: add setting UAVO with max output rate

Specify the max degrees per second for each channel.  This sets
a limit to prevent the gimbal channels skipping.

Conflicts:
	flight/Modules/BrushlessGimbal/brushlessgimbal.c
Stabilization: add direct mode

A direct attitude PID is better for gimbal control.  Using the
dual controller overly damps things which triggers ratching.

Conflicts:
	flight/Modules/ManualControl/transmitter_control.c
	shared/uavobjectdefinition/manualcontrolsettings.xml
	shared/uavobjectdefinition/stabilizationdesired.xml
AttitudePID: make direct mode more direct
Stabilization: add separate settings for AttitudePID mode

Since this mode uses a different scale for the units and derivative
might be desired.

Conflicts:
	flight/Modules/Stabilization/stabilization.c
PiOS Brushless: add a per channel scale term

This way if one channel needs more power they can be tuned
individually (e.g. roll has more mass).

Conflicts:
	flight/PiOS/STM32F30x/pios_brushless.c
Brushless: disable output for first 10 seconds

This lets the attitude stabilize
PiOS Brushless: add slew limiting to the BGC outputs

Conflicts:
	flight/PiOS/STM32F30x/pios_brushless.c
Temp code - refactor or trash

Conflicts:
	flight/targets/board_hw_defs/sparky/board_hw_defs.c