Avoid using the Environment class where easily possible because it forces homogeneous VM types

I'm trying to work with heterogeneous VMs, but this is difficult because the vm properties are often obtained from an Environment instead of from the VM. So I've tried to replace this where possible with the use of VMType instead (which can be easily obtained from a given VM).

It seems like a lot of the current scheduling algorithms rely on the assumption that all VMs are the same, so I think I'll try to create a separate type of algorithm that doesn't have this assumption. Possibly they can be merged to some extent eventually...
Hmm... Could you delete this method? I feel kind of worried with having the same methods in storage manager and here. This looks very erroneous, since with this method I am not sure that you've migrated all old usage of this method.