IMU data stream, returns raw 3-axis magnetometer and 3-axis accelerometer data
and optionally computes derived values
Note, a proper calculation of Heading requires magnetometer calibration,
tilt compensation (which we can do here from the accelerometer), and magnetic
declination adjustment (which is lat-long and time-dependent).
Magnetometer calibration and declination adjustments need to be done outside this class.