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
```



Try to avoid these un-indented lines. I think it is better if you indent them correctly, even if that requires the use of concatenation and more quoting:

    phone_home = \
      "phone_home\n" \
      "  url: #{phone_home['url']}\n" \
      "  post: #{phone_home['post']}\n"

By the way, I'm also confused by the fact that `phone_home` appears twice. Luckly the assignment runs after the lookups of the `url` and `post` parameters, but that will easily broke. I'd suggest you to rename the variable, so that there is no potential for interference:

    phone_home_yaml = \
      ...