added AddPeer and RemovePeer commands that mutate the ring state.
removed the redundant nameKey. registered the Add/RemovePeerCommands. extracted the Ring type from node.go. gave nodes separat pos and name (pos is position in ring, name is permanent raft name) which allows me to use completly random position and still have json safe names. made the stopping happen with a sync.Cond again, since the waitgroup doesnt lock the way i want. made nodes save the ring state as well as whether they are stopped. made sync actually sync data. moved some packages around.
created a nice Ring type that keeps track of our ring, sorts by pos and finds peers by name.
created an rpc server type for node
simplified parts of the raft rpc transports, and broke an interface in two. made non responsive nodes also be kicked from the node rings.