Use current.configuration instead of configuration in GlobalSettings.

The purpose of the configuration in GlobalSettings is to supply a hook to
modify the configuration by overriding it on loading time. Unless Global
doesn't override it, it is just an empty configuration.

We should use play.api.Play.current.configuration if we want to read the
current configuration.
Fix style errors.
Use sbt-scalariform.

sbt-scalariform automatically fixes style errors when compiling.
Fix style errors in test code.
Add CuratorFrameworkFactoryWithDefaultPolicy.

This factory returns CuratorFramework created with the retry policy from
configuration.
Add RoutingTableBuilder.

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

RoutingTableLeader monitors WorkersPath and updates route table when
worker is added or removed.

Curator LeaderSelector ensures only one leader works at the same time.
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.
Implement RoutingTableWorker

RoutingTableWorker uses Curator to sync consistent hash routing table.

Worker creates sequential ephemeral node at workers node with
protection mode when it starts. Protection mode is one of the curator
recipie. It addd prefix with client id to ensure that node is created.

Worker watchs routing table node and updates RoutingTable when
routing table node is changed.
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.
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.