Initial implementation of raft.MultiNode.

This is mostly a transliteration of raft.Node with a map of raft objects
instead of just one. It was implemented without any changes to the
single-node implementation, although it could be simplified if we added
group ID fields to the underlying protocol buffers.

@xiangli-cmu, this isn't ready for a full review yet but you might like to see the current state.

@spencerkimball @cockroachdb/developers 
For some kinds of validation, that makes sense (like the "is this node a member of the cluster" stuff in the other commit you just sent). But in this case, it seems like raft.Step should be the thing that knows to ignore MsgHup and MsgBeat.