Generate constructors for messages.

This is going to bloat the microcontroller firmwares a wee bit, but right now we depend on undefined behaviour in that we assume that messages are going to be allocated on zeroed memory. It's particularly problematic for the length field on a subscriber to be non-zero, since that really confuses the logic that triggers a realloc when a larger sized array is received.

Situations where the message memory may not be zeroed: messages allocated on the stack, clients running on PCs, unit tests, etc.
This is a bit of a cop-out, but doing it properly is a lot more complex— you'd have to figure out if the array is of primitives or not, and insert a memset call in the constructor body in the case of primitives.