[ground_segment] add joystick hat to input2ivy

You can use the Hat<Position>(<hat_name>) function to trigger events,
where <Position> is one of
Centered/Up/Right/Down/Left/RightUp/RightDown/LeftUp/LeftDown

Only one hat can be used, but the interface will allow multiple ones in
the future.

closes #460
[nps] make radio_control type datalink work
[conf] update xbox and sidewinder joystick examples
[peripherals] mpu60x0_i2c: only copy ext data if i2c_bypass is false
[imu] fixes for imu_drotek_10dof_v2

- fix copying of unscaled gyro/accel data
- make i2c addresses of mpu and hmc configurable
- change orientation so z-axis is down when chips face up: define IMU_DROTEK_2_ORIENTATION_IC_UP
- silence some warnings
[fix] Yaw command was overwritten by trim.
[fix] logging wrong channels
[dfu] Small fix to finddevs timeout
[system] add apt preference file for lpc21isp package
additionals to use amsys sensors to measure airspeed
[math] fix ecef_of_[ned|enu]_i
[modules] remove unused baro_x_updated vars
[math] buf fix on geodetic function
[rotorcraft] add MODE_STARTUP to make flying without RC possible

Based on Freek van Tienen's commit, thx.
closes #467 for now
[lpc21] print error if trying to use SPI0 with HAL
[boards][krooz_sd] fix PPM Capture/Compare InterruptEnable define
[stm32] include stm32/flash.h instead of f1/4 variants
[stm32] F4: fix ppm input timer frequency for TIM2

- krooz: don't use TIM2 for PWM
- change to 6 ticks per usec to fit all frequencies
- on the F1 we assume to run at 72MHz for HCLK and both timer clocks
  TIM1 -> APB2 = HCLK = 72MHz
  TIM2 -> 2 * APB1 = 2 * 36MHz = 72MHz
- on the F4 we assume 2 * AHB clock:
  TIM1 -> 2 * APB2 = 168MHz
  TIM2 -> 2 * APB1 = 84MHz

closes #470
[electrical] don't try to use ADC_CHANNEL_CURRENT in SITL
[imu][aspirin_2_spi] clear naming for mag axes assignment