[modules] geo_mag cleanup and doc improvements
[stm32][adc] fix for f1

- update libopencm3 to get adc_set_injected_sequence fix for f1
- set_sample_time_on_all_channels rather than on each channel separately since we use the same sample time for all anyway
- also use some convenience functions instead of directly reading the registers

- since compatibility with old systick was removed in libopencm3 with commit bfc65271c083ad2cd79e61901a769d8c354d863b,
  also update the systick clock source in stm32 sys_time_arch and luftboot
[extra_dl] fix extra datalink (typo, doc)
[math] some addition to math and filter lib

- generic matrix operation (float)
- cholesky and qr decomposition
- 1st, 2nd and 4th order low pass filter
[rotorcraft] fix hidden bug in ref_quat_float

thanks Antoine
[usb] add usb-storage for apogee SD logger

[usb] fix usb-storage when mounting before starting log
[export] export PPRZ datalink macros

useful when working with external project who wants to avoid coding
the datalink parser and message protocol
[conf] add rotorcraft_basic_safety flightplan

Even the default basic flightplan should have more safety features enabled in an effort to reduce risks.
It is not obvious however what increases or actually decreases safety:
e.g. killing a quad at the wrong location might prevent fly-away but might also create even higher risks.
[build] optimization flag can be set from airframe file
move energy to electrical subsystem

also publish ENERGY message on rotorcrafts
[sim] add button to enable/disable datalink
[usb] prevent start of log when usb storage is running
[log] add option to log raw invariant filter inputs and outputs
[usb] improve usb storage

° when an usb is plugged, wait for an usb-storage cnxion, then
  stop the autopilot to reserve cp for usb-storage thread.
  Yes, we should avoid false detection, so there is two level of detection
  before shutting down autopilot thread.

remove spurious white char @ eol
[rotorcraft] MOTOR_MIXING_MAX_SATURATION_OFFSET defaults to 10%
[modules] fix baro_bmp
[conf] cleanup flash_modes
[math] add SV decomposition and make proper functions
[fix] set lower number of decimal to log (was exceeding  buffer size)
[math] fix compilation with g++ (for nps)

this solution is not really nice and consume a bit more space, if
anyone have a better idea...