Introduce disk profiles and enable virt.init on an ESX host

This PR adds disk profiles, in the same vein as nic profiles.

This is then used to create empty disks on an ESX host. But the intent with disk profiles is to be used generically and not directly used only with ESX.

The initial virt.init exec module assumed (prior to this PR) that there would be a disk template image that would serve as a base image for your VM. We are now able to create VMs without a base image, but instead with empty disks. The use-case here is that we will use PXE to bootstrap the VMs.

This PR fixes a code vs documentation issue/mismatch, where it is stated [0] that a nic profile will default to whatever ``model`` is best suited for the underlying hypervisor.

TESTING NEEDED. I would very much appreciate if someone with a known-good setup of KVM-based Salt cloud controller would test the ``image`` and ``seed`` arguments to ``virt.init`` so that they are working as expected. I will get to this if someone doesn't give it spin first.

 [0] https://github.com/saltstack/salt/blob/743561d7a1fa86253fb15dfe139a4a55c019c9c7/doc/topics/virt/nic.rst#virtual-machine-network-profiles