Add config parsing
Use spawn instead of exec

Using spawn instead of exec prevents the output from being buffered
which may cause buffer overflows. The output buffering in the execute
method have also been removed and the output of the child process can
now only be obtained through the output handlers.
Updated doc blocks for virtual methods