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

Can you use symbols for the parameter names keys instead of strings?

    hostname = opts[:hostname]
    ip = opts[:ip]
    ...

This way the method can be invoked using the named parameters:

    client.vm_start_with_cloudinit(myid, hostname: "myhost.example.com", ip: "10.0.0.1", ...)