Add state change callback.
Merge pull request #118 from EasonLiao/clarification

Server state MDC doesn't get set when starting a single server?
Buffer requests before broadcasting phase.
Merge pull request #110 from EasonLiao/buffer_requests

Participant should buffer send request before broadcasting phase.
Add type field to Transaction.
Add PersistentState test.
Make reconfig logic more clear.
Change from LEAVE to REMOVE on reconfig.
Some comments and cleanup
Merge pull request #127 from EasonLiao/cop2log

Append COP to log and some refactory on reconfig logic.
Merge pull request #111 from EasonLiao/persis_test

Add unit test for PersistentState class.
More tests for reconfiguraion.
Made ack_epoch proposed_epoch file readable.
Remove enum in Transaction.
Cleanup logging.
Merge pull request #116 from EasonLiao/plain_epoch

ack_epoch and proposed_epoch are not human readable
Merge pull request #122 from EasonLiao/clean_log

log message cleanup
Merge pull request #129 from EasonLiao/more_tests

More tests for reconfiguraion.
Merge pull request #130 from EasonLiao/remove_enum

Remove enum in Transaction.