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

It is possible two workers can run on one node if that node has enough resources, please make the worker port configurable as part of the worker's config.