voted_sensors_update: fix invalid/stale mag data on posix
voted_sensors_update: fix invalid/stale mag data on posix

Problem: _mag_device_id is used to get the correct rotation matrix for each
mag. But on POSIX, _mag_device_id was always 0, leading to invalid rotation
matrices.
This resulted in stale mag error messages (rot matrix=0 ==> mag data=0).
_mag_device_id was 0 because there are no /dev/magX devices (eg. on RPi),
thus the mag driver could not be opened.

This patch does: get the device id from the uorb topic instead. We still
need the device handle on certain platforms to apply the calibration params
and to check if the mag is internal or external.

Problem left: on POSIX, the check for external mag does not work.

PX4/Firmware,mje-nz/PX4-Firmware,jlecoeur/Firmware,dagar/Firmware,Aerotenna/Firmware,dagar/Firmware,acfloria/Firmware,mcgill-robotics/Firmware,Aerotenna/Firmware,PX4/Firmware,Aerotenna/Firmware,Aerotenna/Firmware,mcgill-robotics/Firmware,mcgill-robotics/Firmware,PX4/Firmware,dagar/Firmware,jlecoeur/Firmware,mje-nz/PX4-Firmware,jlecoeur/Firmware,krbeverx/Firmware,acfloria/Firmware,PX4/Firmware,acfloria/Firmware,mje-nz/PX4-Firmware,acfloria/Firmware,jlecoeur/Firmware,krbeverx/Firmware,Aerotenna/Firmware,mje-nz/PX4-Firmware,jlecoeur/Firmware,acfloria/Firmware,krbeverx/Firmware,krbeverx/Firmware,mje-nz/PX4-Firmware,mcgill-robotics/Firmware,mje-nz/PX4-Firmware,mcgill-robotics/Firmware,acfloria/Firmware,dagar/Firmware,jlecoeur/Firmware,Aerotenna/Firmware,krbeverx/Firmware,mcgill-robotics/Firmware,mje-nz/PX4-Firmware,PX4/Firmware,jlecoeur/Firmware,mcgill-robotics/Firmware,jlecoeur/Firmware,krbeverx/Firmware,dagar/Firmware,acfloria/Firmware,dagar/Firmware,PX4/Firmware,PX4/Firmware,Aerotenna/Firmware,krbeverx/Firmware,dagar/Firmware