PrimaryNode: Moved a lot of code out of the primary 100Hz loop.
CAN and MAVLink messages were only processed during the 100Hz main loop. They should really be processed as soon as they come in, leaving as little as necessary in the 100Hz loop.
I extended some macros to simplify the sensor connection/disconnection code.
Moved a lot of code not related to basic MAVLink communications into PrimaryNode, where it should be. MavLinkGlue is now a little more generic.