Merge pull request #102 from EasonLiao/master

clean up cluster state change callbacks
Merge pull request #109 from EasonLiao/refactory

Refactory
Change QuorumZabTest from CountDownLatch to Semaphore.
Use ParticipantState object to share states among different instances of Participants.
Merge pull request #113 from EasonLiao/change_test

More unit tests for QuorumZab and change from CountDownLatch to Semaphore
Merge pull request #114 from EasonLiao/master

Use ParticipantState object to share states among different instances of...
Refactor the QuorumZab interface.