raft: add tests based on section 5.2 in raft paper

#1408 
I want to separate it out because it is gonna be large, and it follows the main thread of raft paper. i will rename it to "raft_paper_test" to clarify it. we could merge it back if it doesn't deserve the separation..