Used db locks instead of pid files

- Added table for locks
- Refactored locking mechanism in CM_Cli_Command
- Added local maintenance job to monitor locked processes
Formatting
Merge branch 'master' of github.com:cargomedia/CM into issue-1203

Conflicts:
	resources/db/update/28.php
Synchronized parent instead of children processes of CLI commands

- Renamed process table
- Moved synchronization logic from CM_Cli_Command to CM_Cli_CommandManager
- Added callback called at the end of the parent process in CM_Process, used to unlock the command
Docu
Wording, adjusted maintenance
Docu
Renamed table

- Added namespace prefix "cli"
Added basic unit tests for the command manager
Moved getHostId() and getProcessId() to CM_Process
Added unit tests for single-threaded synchronized commands
Added unit tests for synchronized commands kept alive
Added unit tests for forked synchronized commands
Added unit tests for forked synchronized commands kept alive

- Added assertions on _lock/unlockCommand()
Refactored forking in CM_Process

- Passed child workload as a closure to CM_Process::fork()
- Moved synchronization/keep alive logic to a new method waitForChildren() to be called explicitly
- Added termination callback called after waitForChildren() - either when the child processes are all terminated or when the parent process is being interrupted
- Added thus support for different workloads executed in parallel
Increased command synchronization timeout to 5 minutes
Used CM_Util to execute hostid
Used CM_Process::isRunning()
Review requests

- Made _getProcess(), _isLocked(), _lockCommand() and unlockCommand() non-static
- Fixed _outputError()
- Fixed docu of executeTerminationCallback()
- Moved forking logic from _spawnChild() directly to fork()
- Made isRunning() static
Review requests

- Refactored _isLocked() to _findLock(), added host and process id to error message for locked commands
- Made $keepAlive argument optional in waitForChildren()