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.
Add terminateProcessIfExists.

terminateProcessIfExists removes pid file on restart and sends terminate
signal to the pid in the file.

The next patch will make MongoDBLauncher and ZooKeeperLauncher use this
method.
Make ZooKeeperLauncher use terminateProcessIfExists.

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.
Terminate 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.