Use polymorphism instead of primitives and conditionals
Spec each infrastrcuture directly for clarity
Introduce hypervisor notion so we can use it in the stemcell filename
Inject infratrcuture object instead of primitive name
[#53976067] bosh-dev knows that openstack stemcell name includes hypervisor