Basic UAVCAN support

DO NOT MERGE.
Let me throw it at the ground and miss first.
An assertion should only be used for a fatal event - out of range here just means it has to be limited to the range. A warning (better an error counter with perf_count()) seems the appropriate level here.