raft: fix Campaign on restore if the node id is not in the progress list
raft: fix Campaign on restore if the node id is not in the progress list

When restarting a node from its state, logs are reapplied to
restore the cluster membership with `ConfChangeAddNode` log
entries.

There is a chance to reach the portion calling `Campaign` to
restart a single cluster member faster when we are still
in the process of restoring the memberlist. In this case
the node may not appear in the progress list and we might
call `MaybeUpdate` on the node id from the map without
sanity checking thus resulting in a panic.

To avoid that, check if the node is present in the Progress
list before trying to Campaign on node restore.

Signed-off-by: Alexandre Beslic <7f00c88b7660208d6ae438e5aa377b1c70b9009e@gmail.com>

cheyang/swarmkit,yp-engineering/swarmkit,diogomonica/swarmkit,cheyang/swarmkit,allencloud/swarmkit,yongtang/swarmkit,yongtang/swarmkit,deljuven/swarmkit,AliyunContainerService/swarmkit,docker/swarmkit,elifa/swarmkit,yp-engineering/swarmkit,jlhawn/swarmkit,deljuven/swarmkit,diogomonica/swarmkit,jlhawn/swarmkit,aaronlehmann/swarmkit,AliyunContainerService/swarmkit,RenaudWasTaken/swarmkit,RenaudWasTaken/swarmkit,fate-grand-order/swarmkit,dperny/swarmkit-1,vasil-yordanov/swarmkit,alyyousuf7/swarmkit,aaronlehmann/swarmkit,allencloud/swarmkit,sungwonh/swarmkit,dperny/swarmkit-1,vasil-yordanov/swarmkit,cezarsa/swarmkit,alyyousuf7/swarmkit,elifa/swarmkit,docker/swarmkit,cezarsa/swarmkit,Noyan759/swarmkit,Noyan759/swarmkit,fate-grand-order/swarmkit,sungwonh/swarmkit