Reap child processes gracefully if greenlet thread gets killed

If ProcessLauncher is run from within a thread we should be able to
call wait after the thread is killed to reap the child processes.
Catching this exception and then proceeding to the cleanup phase
accomplishes this.

Conflicts:
	nova/openstack/common/service.py

Closes-Bug: #1282206
Change-Id: I9c863864c25c0478b720fc57cf0dccbe9bc9d9f6
(cherry picked from commit a6fec438abe61d40fc4fb6907ea1fefd4dd93e22)
Merge "Reap child processes gracefully if greenlet thread gets killed" into stable/icehouse