feat(command): add version to join command

Add a version to the join command. Add a versioning document to discuss
some of the design decisions.
feat(raft_server): do not allow mixed versions

fail to join if there is an internal version mismatch.