MiscMath: move the expo3 function here

It is about to be used by both transmitter and stabilization.
Horizon: add stub for Horizon mode

No implementation yet so is not safe to fly.
Horizon: connect inputs to the PID controllers

This mode uses the raw stick input to smoothly transition
from an outer attitude controller setting the desired rate
and the stick input. This allows switching from an attitude
mode to a rate mode continuously.

This preserves the exponential behavior of rate mode if it
is engaged so will keep both the attitude component and the
rate component trimmed the same as the basic modes.

This mode is modeled off the multiwii controller code, specifically
from the baseflight fork in the pidMultiWii. One difference is
suppressing the outer loop integral component. Also in that code
the "rate" mode doesn't appear to use an acutal proprotional
component despite the name and just pushes the stick input
straight to the output and uses an integral controller on the
outside (more like our virtual flybar mode at the extremes).
Horizon: blend amount determined by greatest stick

Previously the blend between attitude and rate was done
independently for each axis. However, that meant when
performing a pitch flip, the roll axis was on attitude
mode and would try and keep level. Once going inverted
the controller would do a roll to attempt to level out,
which is undesirable.
Horizon: use the local version of settings

No reason to keep fetching the value from the UAVO manager,
especially since it requires lots of grabbing of mutexes.
Horizon: 85% stick input fully engages rate mdoe

This makes sure with big stick movements that the rate mode
is fully engaged which prevents weirdness for loops.
Horizon: more work on the cross-axis blending
Horizon: add a comment
Merge pull request #1030 from peabody124/horizon

Horizon mode