balancer: replace 'qlen > ts' condition in _eval_add_node

SGELoadBalancer._eval_add_node now does the following when it's checking
whether or not to add nodes:

1. Check if there are 'qw' jobs - if not return immediately
2. If total slots available is 0 then automatically set need_to_add to 1
(as done previously)
3. If there are more qw slots requested than there are available slots
in the cluster then check if the oldest job is older than max_wait and
if so calculate how many nodes to add.

The biggest change here is the condition for #3. Previously the
condition was:

    qlen > ts

The 'qlen' variable in the previous condition was the number of slots
requested by the queued and waiting (qw) jobs. The fact that there are
qw jobs at all *usually* indicates that all slots are taken - otherwise
they would be in a 'r' state. So essentially the 'qlen > ts' check
required all slots to be taken AND the number of slots requested by
queued jobs to be greater than the total slots in the cluster before
checking whether to add nodes which is not the desired behavior.

Instead of using 'qlen > ts' the code now uses 'qw_slots > avail_slots'
which means '# of slots requested by qw jobs is greater than the number
of *available* slots in the cluster'. This check would not be necessary
at all if it weren't for the fact that SGE's scheduler processes job on
an interval and it's possible that some jobs are 'qw' even though slots
are available due to the scheduler not yet going through another
iteration.

This patch implements the suggestion by @dmachi in gh-69 concerning
skipping the 'qlen > ts' check altogether. The only exception is the
fact that 'qlen > ts' has been replaced by 'qw_slots > avail_slots' for
the reasons mentioned above.