[SensorManager] Decouple data processing from data sampling thread and other improvements
New requirements for the SensorManager:
- Less boilerplate code when adding sensors Adding a new sensor requires editing various parts of the sensormanager and writing lots of repeated code
- Decoupled sensor sampling <-> data processing Data processing (eg ADA) must not run in the same thread as the sensor sampling routines
- Try to make it more general-purpose All sensors are now hardcoded in the SensorManager class, which is not a "clean" solution