Introduce versioning in the protocol

**Description:** introduce versioning in the protocol. Use the simplest criterium when parsing messages: rejecting messages with any version other than the current one.
**Testing:** all tests pass.