Enable to virt.init on an ESX host

WARNING: This is currently untested on a KVM/QEMU host, so this might
very well introduce a regression. Please review.
Make the profiles fall back to defaults based on active hypervisor
Make virt.init return backwards compatible

Though I think virt.init should return True or False.
Keep it DRY
Merge branch 'develop' into esxi-init

Conflicts:
	salt/modules/virt.py
Incorrect YAML in document example

The difference between:

```python
{'disk': {'default': [{'format': 'qcow2',
                       'model': 'virtio',
                       'size': 8192,
                       'system': None}]}}
```

and:

```yaml
{'disk': {'default': [{'system': {'format': 'qcow2',
                                  'model': 'virtio',
                                  'size': 8192}}]}}
```
Add unit tests for a few functions in modules.virt

For:

 * modules.virt._disk_profile()
 * modules.virt._nic_profile()
 * modules.virt._gen_xml()
Fix example in docstring for virt.get_profiles

Also refactored some variable names.
Use StringIO from salt._compat
Compatibility import for ElementTree
Refactor profile loading to use YAML

This is done in order to more easily test configuration syntax errors,
as the the minion configuration file uses YAML.
Add unit tests

In addition to custom ESX profile, test:

 - default KVM profile
 - default ESX profile
 - custom KVM profile
Two integration tests for virt.get_profiles

This will test the default NIC and disk profiles for KVM and ESX.
Merge pull request #7264 from holmboe/esxi-init

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