Raft Consensus Protocol

Introduces Raft consensus protocol, a distributed system that handles server failure.