Scaling - initial draft 

Marek please review the code
Logic about deciding which what kind of VMs (template + flavor) should be instantiated should be optimization policy responsibility not manager. It should be responsible only for executing actions created by strategy. Similar situation is with `scale_down!` action