Implement RoutingTable class.

RoutingTable manages consistent hash used by Game Server load balancing.
Each game server handles range in (hash of previous server, hash of
current server].

Next commit will make curator.Worker(it will be used by all game server)
update RoutingTableView of BeyondSupervisor and
curator.LeaderCandidate(it will be one of game servers, and manages
consistent hashing) use MutableRoutingTable.
Add curator.Connection.
Implement curator.Worker.

Worker is zookeeper client used by all game server.

Worker 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.

Worker watchs /routing-table and updates RoutingTable when /routing-table
node is changed.
Implement LeaderCandidate.

When LeaderCandidate starts, it creates LeaderSelector and make it register as a candidate.

If LeaderCandidate becomes leader, it monitors /workers/* and updates
/routing-table.