Improve scheduling

This changes the type returned from `ListHosts` from a `map[string]host.Host` to a `[]host.Host`, and adds some very simple tools to schedule jobs on the hosts with the smallest number of running jobs.

Hopefully it will provide a mild improvement in the scheduling behavior.
I don't think so. This sort is to ensure that we put each job on the host with the minimum number of jobs of the same type, which is different. What I can do is add an additional condition to this sort that sorts hosts with the lowest number of total jobs first.