Add ProcessCommand.

Sending a signal to process is an OS dependent job.
ProcessCommand has a factory method to get a OS specific ProcessCommand.
This patch only implements terminate signal, because we only need it
at this time.
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.
ProcessLauncher launches process when ProcessLauncher starts if pid file
is not exists. And terminates process when restarts.

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