Adding a cluster usage based scaling policy.

This will serve as an example to add more complex auto scaling policies in the future.
Is this process synchronous? As in, we block waiting the creation of the new nodes? The code seems to want it and assuming it may make this logic simpler. Get state -> decide to scale -> scale -> repeat