Make kill wait for child process to exit, to add support for asynchronous signal handlers
[fix] Minor changes to improve #56.
preliminary test impl. showing forever-monitor/issues/36 in action
better monitor/start-stop-test

* test name renamed in header comment section
* better test case implementation covering: start -> stop -> restart and reproducing issue #36
fix issue #36

* logger unpipes before monitor out/err streams to be destroyed child's out/err streams
* logger destroys monitor out/err streams by waiting child stdout to flush its data
* executing monitor.restart on already killed child process actually shouldn't kill it again but start it
* monitor.kill when used with forceStop kills the child process the same way with killTTL present as without it (and removed the strange `toKill = [child.pid]` variable)
[minor fix] Some small fixes changes based on #78.