adjustment ranges to adjustment slots when channel is within range.
example:
```
adjrange 0 0 0 900 1700 0 2
adjrange 1 0 0 1700 2100 1 2
```
explained:
* configure adjrange 0 to use adjustment slot 1 (0) so that when aux1
(0) in the range 900-1700 then do nothing when aux 3 (2) is in any
position.
* configure adjrange 1 to use adjustment slot 1 (0) so that when aux1
(0) in the range 1700-2100 then do use adjustment 1 (rc rate) when aux 3
(2) is in the appropriate position.
Without the entire range of aux1 being defined there is nothing that
would stop aux 3 adjusting the rc rate once aux 1 wasn't in the higher
range.
There are 4 adjustment slots and 12 adjustment ranges.
Adjustment slots and adjustment ranges can use the same aux channel.
e.g.
`adjrange 2 1 0 900 2100 1 3`
* configure adjrange 2 to use adjustment slot 2 (1) so that when aux4
(3) in the range 900-2100 then use adjustment 1 (rc rate) when aux 4 (3)
is in the appropriate position.
e.g. `adjrange 0 0 1700 2100 1 2`
set adjustment range 0, which applies to aux channel 0 (aux1) when range
is between 1700 and 2100 then apply function 1 (rc rate) to aux channel
2 (aux3)
rcRate is decreased when low, increased when HIGH and no change when the
switch is in the middle.
The rcRate ticks up/down at 0.01 every 500ms if the switch is left on.
If using a momentary switch and if you can toggle the switch between
middle and low or middle and high more frequently than 500ms then the
rate will be increased accordingly. Similar to how a keyboard repeat
behaves.
both attempted to be enabled at the same time. Angle mode now takes
precedence over horizon mode.
Fix using aux settings that are not applicable to in-use aux channels -
prior to this it was possible to configure aux4 and then switch to
RX_SERIAL using a 7 channel system (3 aux channels) and aux4 would still
have been processed.
This prevents arming after connecting a battery when the throttle is in
low; when using a switch to arm and when the switch is left in the ON
position.
The previous solution was flawed because of the way rc input is handled.
This also removes an extra test of rcOptions by re-arranging the logic
that handles arming/disarming via a switch.
Each flag was previously a whole byte, now all of the flags only take up
4 bytes as they are represented by bit masks.
This is cleaner because the different kind of flags are now separated.
Additionally this changes the behaviour of arming slightly. When using
a switch to arm the aircraft will not arm unless the switch has been in
the off state once. This prevents arming if you power the aircraft with
a low throttle and the switch in the on position.
The MSP is changed in a way that might provide some backwards
compatibility. The first 4 channels are sent/read as before followed by
the next 4 channels.
If I client ignores extra data received it should be backwards
compatible.
Clients can looks for the new capability bit which indicates the MSP
protocol supports AUX 1-8.