Configurable protocol version number, with a min/max, defaults to min
Test that the protocol version is valid when init
Gossip out protocol min/max as part of alive message
Delegate protocol versions
Pass through the spoken protocol versions
Naiive protocol version checking.

This should work (tests pass for it), but it is N^2 and there must be
a better way here.
Protocol verification checks delegate versions too
verify protocol version on the _receiving_ side as well
Handle case where vsn isn't sent by remote node
Ignore non-alive nodes
O(n) algorithm for verifying protocol versions
Add ProtocolVersion() method to help checking
Properly propogate the versioning everywhere
Default protocol version to max
Update comments on how verification works
Merge pull request #2 from hashicorp/protocol-versioning

Protocol versioning