main: Add IIO buffering compass support
Created by: elad661
This (kinda) works on the thinkpad twist, with the only issue is the values returned from the compass are not even remotely accurate :)
The numbers returned from the compass are always larger than 360 (at least on my device), and they never show the correct heading.
(I initially thought calculating it manually from the magn_x and magn_y channels would work better for me, but it turns out they're less accurate and I was reading the numbers wrong)
I also tried using the scale value the sensor has, but that's even worse - the scale is 0.000001, which is very unhelpful... I think it is very likely that the hardware I have is just plainly bad, and that the code itself works as intended.