raft: add Configure, AddNode, RemoveNode

Configure is used to propose config change. AddNode and RemoveNode is
used to apply cluster change to raft state machine. They are the
basics for dynamic configuration.
etcdserver: add AddNode, RemoveNode

AddNode and RemoveNode is used to propose config change to the cluster.
If succeeds, it will add/remove node from the cluster.
etcdserver: Config.Id -> Config.ID
raft: refine comment for raft.pendingConf
raft: use EntryType in protobuf
etcdserver: use ConfigType in protobuf
raft: use pb.Config instead of []byte for Configure
raft: refine comments for Configure
raft: Config -> ConfigChange

Configure -> ProposeConfigChange
AddNode, RemoveNode -> ApplyConfigChange
raft: ConfigChange -> ConfChange
etcdserver: refine comments of config change tests
Merge pull request #1100 from unihorn/129

raft: add Configure