Hypervisor Selection and Decisions in CloudStack