Rewrite autoscaling and enable easier configuration of worker selection and autoscaling behaviour

Will this ever actually be null? The supplier should be bound by a guice module, so it should always be at least something.