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