Add GameEvent trait.

GameEvent simply logs all GameEvents for now. For analysis, this behavior
must be changed to write to HDFS.
Emit "User Login" and "User Logout" events.

Include "username" field when emitting these events.
Move SystemMetrics actors to beyond.metrics package.
Add trackUser method to GameTrait.

trackUser automatically adds username field from implicit request parameter.
Add a method to get the current ClassPath.

Play framework uses custom ClassLoader for auto-reloading in development
mode. So we should join ClassLoader with parent ClassLoader for a
complete ClassPath in development mode.
Add a method to get the current java binary path.
Add the path for writing PID on configuration
Extract the method to get a process ID.
Make ZooKeeperLauncher fork ZooKeeperServer.

Current implementation of curator doesn't consider ZooKeeperServer is
shutdown before curator connection is closed. In this case curator
retries to connect to server for every operation.
This causes a timing issue in test, because ZooKeeper Server restarts
whenever Beyond Server restarts.

We had considered to ensure order between closing curator and
shutdown server, but we concluded it is hard to ensure order in the
clustered environment. So we made a decision to seperate life cycle of
sub process from BeyondServer.

This patch makes ZooKeeperLauncher fork ZooKeeper server.

ZooKeeperServerMainWithPIDFile is main class to execute ZooKeeper
Server. It writes a PID to configured path and execute ZooKeeper server.
The next patch will makes ZooKeeperLauncher kill the process if it is
not responding.