we do not 'reserve' slots on tasktrackers anymore since the user is
already over the limit
Note: some of the code from above is repeated here. This is on
purpose as it improves overall readability.
Note: we walk through jobs again. Some of these jobs, which weren't
considered in the first pass, shouldn't be considered here again,
but we still check for their viability to keep the code simple. In
some cases, for high mem jobs that have nothing to run, we call
obtainNewTask() unnecessarily. Should this be a problem, we can
create a list of jobs to look at (those whose users were over
limit) in the first pass and walk through that list only.