protocol version

This PR fixes #24. It is still a work in progress, not ready for merge. However it allows for early review and to signal I am working on it.
It versions the CAN datagram format. Do you think we should implement something else for the bootloader protocol version ?