Initial code/design for an Akka Raft implementation

Also implements the LeaderBehavior for elections

Change-Id: I629f2cd71717e5d76eae9c1a9a4dc960246070c9
Signed-off-by: Moiz Raja <moraja@cisco.com>
Implement behavior common to a RaftActor in all it's states

The common behavior for a RaftActor is
- Change state to follower when it receives a RaftRPC with a newer term
- Increment the applied state of the commitIndex of the AppendEntries message
  is higher than it's applied state

Change-Id: I1fc0cdcb90368f3c07f555b307ac827286386651
Signed-off-by: Moiz Raja <moraja@cisco.com>
Remove RaftReplicator and move hearbeat logic to the leader

This makes more sense. The RaftReplicator does not seem to add any value.

Change-Id: Id3cf8ecbd2493b35c1a32382d65876795a78fa30
Signed-off-by: Moiz Raja <moraja@cisco.com>
Merge "Initial code/design for an Akka Raft implementation"
Merge "Implement behavior common to a RaftActor in all it's states"
Merge "Remove RaftReplicator and move hearbeat logic to the leader"