Fix the bug when try to terminate the job that has its hanging child
process

1. Let daemon remember how many time it trying to terminate each worker.
When clear_timeout_workers() method runs, it will check that record then
decide should it send termination signal to timeout worker or not.

2. Modify kill_worker_by_pid() method to make daemon try to kill not
only job process executing by worker but also all descendant process
excuting by job process.

3. We keep the old version of kill_worker_by_pid() method and rename it
to kill_worker_by_pid_2. Just in case the new version is not working.