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.
fix(command): change Version to RaftVersion

clear up confusion on what this field is used for: it is for the
internal raft protocol version only.
fix(raft_server): add comment on version field

explain what the version field is for and why it is set to
releaseVersion