Improve responsiveness by only processing 1 CAN message each loop.

Rather than clearing the queue each time, we can get better
responsiveness in other parts of the system by not blocking so long.
Start the moving average from the first value recorded, not 0.
Update CAN statistics each time even if we don't log.
Log stats less often to avoid affecting the result too much.
Compress stats logging to avoid blocking the main loop.
When logging stats, increase CAN buffer size.