Some refactoring on code.

1. Make all the processors as member variables instead of local variable.
2. Make clusterConfig as member variable instead of local variable.

Now the code looks much shorter since we don't need to pass processors
around.
Merge pull request #201 from EasonLiao/refactoring

Some refactoring on code.
Merge pull request #195 from m1ch1/master

The url of documentation in README is incorrect.
Make cluster_config file and config in log consistent.

1. Write to cluster_config first then append to log in sync processor.
2. Clean up invalid cluster_config files after synchronization in case
the cluster_config has been truncated in log and recovering from log in
case the Zab crashed between writing to cluster_config and appending
to log (it's not likey though).
Merge pull request #183 from EasonLiao/cleanup_configs

write cop to a file before appending it to the log