Ensure no _AllTasksComplete() objects are left on queues.
Ensure no _AllTasksComplete() objects are left on queues.

Previously, the master process added 1 _AllTasksComplete() object to the
queue, and the child processes re-added the objects back to the queue
when they were done processing. This design lead to a bug where extra objects
could be left on the queue when the process exited.

To clean this up, I've updated the master process to just add the right number
of objects to the queue in the first place.

BUG=none
TEST=Unit tests.

Change-Id: I5e85c6b2a26ab33742c6f0dafcb31950e7b96d8c
Reviewed-on: https://gerrit.chromium.org/gerrit/39430
Commit-Ready: David James <f231dc574bbeb62604660cbc162d1b8642a0a3af@chromium.org>
Tested-by: David James <f231dc574bbeb62604660cbc162d1b8642a0a3af@chromium.org>
Reviewed-by: Mike Frysinger <8f3f75c74bd5184edcfa6534cab3c13a00a2f794@chromium.org>

coreos/chromite,bpsinc-native/src_third_party_chromite,zhang0137/chromite,coreos/chromite,chadversary/chromiumos.chromite,zhang0137/chromite,zhang0137/chromite,bpsinc-native/src_third_party_chromite,bpsinc-native/src_third_party_chromite,chadversary/chromiumos.chromite,coreos/chromite