Update process #6: make Process.on_sigchld() depend on Process.join()

Process.join() now disables Process.on_sigchld() by restablishing the
default handler SIG_DFL. Process.on_sigchld() calls Process.join() to
avoid calling os.waitpid() in two difference places because it could
interrupted and then resumed in the wrong place.
Update process: add ProcessOpen.is_running property
Update process: use self.returncode in ProcessOpen.on_sigterm()
Update process: change ProcessOpen.terminate behavior and return value to a boolean
Fix test_process: fix test_terminate_exits_with_failure_returncode