Implement leader election

Implement a leader election algorithm once we have a connection manager (#5). 

https://github.com/apache/zookeeper/blob/trunk/src/java/main/org/apache/zookeeper/server/quorum/FastLeaderElection.java
http://zookeeper.apache.org/doc/r3.4.6/zookeeperInternals.html#sc_leaderElection
Now for the current leader election algorithm, we only need the information about ensembles. But we plan to use better leader election algorithm later which requires the server specific info (.e.g. currentEpoch, lastZxid...). So I'm not sure if EnsembleInfo is a good choice.