Add message parsing
Some fixes to messages (more to do, I'm sure)
Merge remote-tracking branch 'origin/HEAD'
Start of protocol implementation using message.c