add raft proto, Roles and RaftServer

1. raft.proto defines all necessary messages used by raft.
2. RaftServer contains the core raft logic and interactions with client.
3. Roles enum defines all three roles in raft:
   Leader, Candidate and Follower.