Adding 2 optimizations to label allocation.

They are -

1) - before choosing a label for a dut, make sure there are at least
     some pending benchmark left undone.

2) - if machine A is working on label A and machine B is working on
     label B, and now machine C finishes its work and wanna to help
     either A or B, then C will choose A if number of pending br on A
     is more than that of label B.

BUG=None
TEST=did a full run locally.

Change-Id: I322bd6fa6d10d15425c452c1437b4fa7f396361f
Reviewed-on: https://chrome-internal-review.googlesource.com/229365
Commit-Ready: Han Shen <shenhan@google.com>
Tested-by: Han Shen <shenhan@google.com>
Reviewed-by: Han Shen <shenhan@google.com>
2 files changed