Bug-2277 : Isolated Leader Implementation

A new RaftState has been added and on a scheduler, we check if the leader is isolated, looking at the majority peer statuses.
If Yes, then it switches the behavior to IsolatedLeader.

On the receipt of each AppendEntriesReply, the IsolatedLeader checks for isolation.
And if no, then switches back to either Leader or Follower.

These changes have been tested with TestDriver  and 3 node cluster and the switching of Leader to IsolatedLeader and back,
on the stopping and reinstating of followers, was successful.

The Isolated Leader check interval can be configured via the config subsystem

Change-Id: I42b9165cc477d812c7e0e02339537c0f1fe74934
Signed-off-by: Kamal Rameshan <kramesha@cisco.com>
Bug-2277: fix the Leader test failing in jenkins

Change-Id: I149d643b517df5010595962cbdf616c2b2fb9945
Signed-off-by: Kamal Rameshan <kramesha@cisco.com>
Merge "Bug-2277 : Isolated Leader Implementation" into stable/helium
Merge "Bug-2277: fix the Leader test failing in jenkins" into stable/helium