Add RoutingTableBuilder.

RoutingTableBuilder will be used by a elected leader to update routing table.
Add RoutingTableView.

RoutingTableView will be used to determine whether the request will be
handled in this server or not.
Each server has hashing value and handles range in (hash of previous
server, hash of current server]. If requested hash is in range,
queryServerToHandle method returns HandleHere. Otherwise returns
HandleIn(address).

And this patch also extracts methods, types and a class from
RoutingTableBuilder to package object. Because they are used in both
RoutingTableBuilder and RoutingTableView.
Broadcasts UpdateRoutingTable messages to UserActionActor.

When RoutingTableWorker detect routing table is changed, it sends a
update message to parent(BeyondSupervisor). And BeyondSupervisor
broadcasts this message to all UserActionActor.

This patch includes two refactorings.
The one is moving case class declaration, that are sent to
UserActionActor, to companion object of UserActionActor.
And the other is extracting names of actors, that are used in
BeyondSupervisor.
Add currentServerAddress in Global.
Response redirect code when the request is not in consistent hashing range of the server.

If the hash of request is not in current server's hashing range, the
server have to response the address of server that will handle this
request.
If a client receives RedirectStatusCode(currently 310. I just pick one
of the redirection code not used in HTTP protocol.), The client have to
retry the address in response.

This patch also moves hashing method to RequestWithUsername from
BlockAndRequest. BlockAndRequest uses hashing method in
RequestWithUsername.
Add ZooKeeperActor.

ZooKeeperActor is dedicated worker to run ZooKeeper client API.
This actor helps you to use asynchronous
For TEST
tmp