Using new fog-core release to fix some default_value issues
Using new fog-core features
Using new fog-core feature (`as`)

Now, the attributes hash is generated using the keys that XenServer  expects.
Added association specs
Removing unecessary code
Fix `snapshot` call from VM

Using the proxy from `method_missing` on model, the request has to be named
with vm instead of server at the end. To mantain compatibility, just an alias
was created.
Improving Spec messages [ci skip]
Some standardization on requests
Moving Vm Destroy Logic

Vm destroy logic was inside request making it harder to test.
Now it is completely on models and  well covered by tests.
Creating a destructor for all models.
Moving some Logic from the Request to the Models
Removing arguments checking from clone_server request
Removing Object checking from requests

Since #all_associations_and_attributes already return the reference instead of
objects, it is not necessary to check if the param is an object or a reference.
There are some cases (like the ones removed here) that the mentioned method
doesn't apply, but in this cases is more a responsability of the developer to
check then of the lib itself.

In both cases it make sense to not check it anymore and thats why this commit
removes them.
Removing more reference checking
Removing more logic from Requests
Moving checking of required attributes to Model
Removed some logic from #create_vif request
Moving #create_vif logic from request to model
Fix for #create_vm request
Fix Vdi destructor