Don't let do_exec reap extra children

Change "wait()" loop to "waitpid(pid)", in order to ensure
we don't lose track of any of our children.

In a failure scenario, init could be busy processing an "exec" call
while some other services are exiting, and this wait in do_exec() must
not reap these children, or else the bookkeeping for the services is
lost.

Change-Id: Ic80ed0abf8709119aae790a719c68d86d73664fd
Reviewed-on: http://gerrit.pcs.mot.com/589643
Tested-by: Jira Key <jirakey@motorola.com>
Reviewed-by: Jeffrey Carlyle <jeff.carlyle@motorola.com>
Submit-Approved: Jira Key <jirakey@motorola.com>
SLTApproved: Christopher Fries <c.fries@motorola.com>