Adding a cluster usage based scaling policy.

This will serve as an example to add more complex auto scaling policies in the future.
I went went this approach to facilitate multiple policies which are applied one on top of the other. If we think, we don't want that ability in the code, then I can make PerformScaling() return the cluster diff. 
In reality, the cluster diff will only have additional nodes since we don't support drains as of now.