raft: add Configure

Configuration change
Current logic is
1. give out Ready
2. reset applied index to be the same as committed index in https://github.com/coreos/etcd/pull/1100/files#diff-5287710a6d77535b74d756c1f74db503R223

It leads to the result that entries may be applied actually after applied index has passed.

So the race may happen:
1. a node becomes leader
2. it set pendingConf = true because there is a config entry uncommitted
3. a committed addNode is applied now, and set pendingConf = false
It breaks the rule that pendingConf reflects whether there is config entry unapplied.

The solution for it needs to change the Node API. We could discuss that later.