PIOS Can: support custom messages

This implements an architecture in PIOS CAN that allows sending
custom messages and abstracts out most of the details. It also 
allows registering queues to receive those messages.

This architecture is used for gimbal control and sends custom
messages for the gimbal angle when CAN is enabled in the 
CameraStabilization module. The gimbal has a builtin module
that receives this data.

This replaces using UAVTalk generically which is very flexible
but much less efficient. The latency is noticeably better with this
approach.

Shouldn't be this structure defined as packed?