Add a performance test for SyncProposalProcessor.

This patch adds a test to benchmark SyncProposalProcessor with various
implementations of the log interface and varying transaction size /
batch size. For now, there is only one implementation (SimpleLog).
Merge pull request #94 from m1ch1/log

Add a performance test for SyncProposalProcessor.
Flush the pipeline when a new follower joins in.
Merge pull request #93 from EasonLiao/flush_pipe

Fix the bug of synchronizing new joined follower in broadcasting phase
Remove ExecutorService in lead.
Change quorumSet by passing messages.
Add atomic set/get configuration from file.
Merge pull request #95 from EasonLiao/quorumSet_clone

Change quorumSet by passing messages.
Single server can join itself.
New follower joins in in failure free case.
Now can boot from just log directory.
Remove Request class, refactor MessageTuple out of Participant class.
Merge pull request #99 from EasonLiao/reconfig

Follower joins old configuration in failure free case.
Select the leader with right configuration after recovery.
Add four more join test cases.
Merge pull request #101 from EasonLiao/reconfig

Select the leader with right configuration after recovery.