raft: optimistically increase the next if the follower is already matched

Fix #1731 
/cc @yichengq @bdarnell

This is useful since we want to pipeline the appendEntry requests. Without
enabling optimistic increasing, the second pipelining appendEntry request
will include the entries the first one has already sent out. We decrease
the next directly to match if the leader receives a rejection for a matched
follower. This happens if one pipelining request get lost and following ones
arrives at the follower.
There are two cases:

1. We lost all the previous requests. Directly to match+1 is prefect. 

2. We just lost one requests in the middle. Directly to match + 1 is fine in most of the cases. Since the leader will be able to get the response of the previous request, and we will increase match and next directly to the match in the response. The extra cause is only a few extra entries (we do need to limit the number of entries in one requests in the future).

Most importantly, I think directly decrease to `match+1` is more easy to reason about.