Add a method to get the current classpath.

Play framework uses a custom class loader for auto-reloading in development
mode. So in development mode, we must join the class loader with the parent
class loader to get the complete classpath.
Add a method to get the current java binary path.
Add a method get the path for writing PID from configuration.
Move getProcessID method to BeyondRuntime as processID.
Make ZooKeeperLauncher fork ZooKeeperServer.

Currently, the lifecycle of ZooKeeper server is exactly the same to that of
Beyond instance. So whenever Beyond restarts, the ZooKeeper server also
restarts.

Unfortunately, this dependency causes unnecessary delay in Beyond shutdown.
When shutting down Beyond, the ZooKeeper server can be stopped before Apache
Curator connection to the ZooKeeper server is closed. In this case, Curator
tries to reconnect to the server for each pending operation, which causes
significant delay in shutdown.

This patch is the first step to separate the lifecycle of ZooKeeper server from
that of Beyond instance. ZooKeeperServerMainWithPIDFile is the main class to
execute ZooKeeper Server. It writes PID to the configured path and executes
ZooKeeper server. The next patch will make ZooKeeperLauncher kill the process
if it is not responding.
Make ZooKeeper server launchable when ZooKeeperLauncher restarts.

Currently, ZooKeeper server doesn't restart when ZooKeeper server
breaks down because there is the pid file.
This patch makes ZooKeeperLauncher delete the old pid file for making
available to start ZooKeeper server.
Kill MongoDB when MongoDBLauncher restarts.

Currently, mongod has the same life cycle with MongoDBLauncher.
This patch splits mongod and MongoDBLauncher life cylces.
Mongod alives after MongoDBLaucher stops. MongoDBLauncher kills the
mongod only when MongoDBLauncher restarts.
Check MongoDB server is working.

This patch makes MongoDBLauncher throw ServerNotRespondingException when
the server does not respond.
LauncherSupervisor makes MongoDBLauncher restart.

MongoDBLaucher uses Status command for health checking.
Add ProcessLauncher.

The launcher who inherits ProcessLauncher have to early initialize
pidFileName, initialDelay and tickInterval. These are used by
constructor.

The next patch will make MongoDBLauncher and ZooKeeperLauncher inherit it.
Make MongoDBLauncher inherit ProcessLauncher.
Make ZooKeeperLauncher inherit ProcessLauncher.