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

What is the reason to use YAML here? Can't you use a normal Ruby hash?

    def self.cloudinit(user_data = {})

Then you can access the like `user_data[:hostname]`. for example.

Add some documentation to the function, so that the user will be able to know what are the available parameters without having to look at the implementation.