more efficient hydra-queue-runner

I use IO::Select for multiplexing nix-store processes using a single database connection and a single perl process, instead of forking hydra-build. I am field-testing the code and it seems to perform well so far. If you think it's fit for a merge, poke me and I'll remove excess logging (or you can do that yourself of course).

PS: There's a conflict with the upstream change in behaviour of failDependents. I would like to restore the old behaviour for cases where scalar @dependentDrvs < someconstant, because unconditionally fetching all builds can be quite inefficient. If we are otherwise good to go, I can do that and rebase the commits.