Fix build_queue() exiting early while builds are still occurring. Also fixes...

1. The last ports built would forever be in PORT:done status, instead of
   idle:. This was especially noticeable in the new HTML page.
2. The stats would not get updated due to the race condition, noticeable
   on the HTML page
3. The bulk would exit while children were still running, resulting in
   busy mounts and failures cleaning up
4. build_queue() was not closing the &6 socket when done since it would
   'return 0' on empty queue, instead of break.

This regressed due to multiple problems. Most of all, the splitting of the
building pool from pool/PKG/.building into building/ causes the code
to see the build pool is empty, so it immediately returns, regardless
if any builders are still active. Now it will keep looping until all
builders are inactive.