raft: add Configure

Configuration change
sure. When etcdserver wants to add node, it calls `n.AddNode(ctx, 2, []byte(":7001")`.
If this log entry is committed successfully, etcdserver will get back something like `[]pb.Entry{Type: EntryConfig, Data: []byte(pb.Config{Type: ConfigAddNode, Id: 2, Context: []byte(":7001")})}` through committed entries. And it has to unmarshal it to understand what happens.
There is a gap between input(call `AddNode`) and output(CommittedEntries).