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.
Make reconfig logic more clear.