fix(server.go) fix data race in server.stop
Use setState() function to set state; avoid data race.
fix(peer.go) protect lastActivity with peer lock
fix(server.go) use server.setState everywhere
fix(transporter) set ResponseHeaderTimeout before using it; avoid data race
Merge pull request #205 from xiangli-cmu/fix_data_race

Fix data race
fix(server.go) fix that the server cannot be inited after loading snapshot.
We cannot use log.empty to check if the log has been loaded or not. After we load the snapshot, log.empty will be false but we has not loaded the previous log. We introduce log.initialized to indicate that we have loaded the previous log file.
test(snapshot) add tests for recovery from previous snapshot and log
Merge pull request #208 from xiangli-cmu/fix_init

fix(server.go) fix the problem that the server cannot be inited after loading snapshot.
Merge branch 'master' of github.com:goraft/raft

Conflicts:
	server.go