Create MongoDB data directory if it does not exist.
Implement ZNodeHashTable class.

ZNodeHashTable manages consistent hash used by Game Server load
balancing.
ZNodeHashTable extends two traits, ZNodeHashTableView and
ZNodeMutableHashTable.
Each game server handles in range of (hash of previous server, hash of
current server].

Next commit will make ZNodeFollower(it will be used by all game server)
use ZNodeHashTableView and ZNodeLeader(it will be one of game servers,
and manages consistent hashing) use ZNodeMutableHashTable.
Add ZNodeClient.

ZNodeClient is wrapper of curator client. Every ZooKeeper client will
use it.
Implement ZNodeFollower.

ZNodeFollower is zookeeper client used by all game server.

ZNodeFollower creates sequential ephemeral node at /servers/* when it
starts. We use protection mode. Protection mode add prefix with client
id to ensure that node is created.

ZNodeFollower watch /hash-table and updates ZNodeHash when /hash-table
node is changed.
Implement ZNodeLeader.

ZNodeLeader is Actor. When actor starts, ZNodeLeader creates
LeaderSelector and make it register as a candidate.

if ZNodeLeader becomes leader, it monitors /nodes/* and updates
/hash-table.