add cloud_init support

those changes allow to optionally pass a user_data string to the vm_action so it it later passed as xml cloud init body for rhev .
the user_data string is parsed as yaml and accepts typical cloud-init content such as the following
```yml
#cloud-config
hostname: HOSTNAME
nicname: NICNAME
netmask: NETMASK
gateway: GATEWAY
ip: IP
dns: 
 - DNS
domain: DOMAIN
password: PASSWORD
```



user_data will typically be sent from foreman->fog as string hence the use of YAML to parse.
the low level library seems like the right place to do the parsing