Added Association Attributes and class methods to work with the association objects

@geemus I've tried to make it as simple as possible, but i might not have done the best, so let me know of any changes you think is needed.

The ideia on the association is pretty simple, all the association objects will be searched on the service object inside of the model, by calling the `collection_name` passed as argument e a `get` with the identity.

The methods created by the association methods store the identity in an attribute with the same name, but with `__` before. Because of this, im ignoring this kind of attribute on `inspect` and `all_attributes`.

I had to create some extra classes to bypass the service logic in my tests but i didnt like that approach too much. Let me know if you think there is another way of doing that without the need of stub everything.
All i can tell you for sure is about the xenserver code.
Before this, all the association references were being store in a attribute starting with `__` like [this one](https://github.com/fog/fog/blob/master/lib/fog/xenserver/models/compute/host.rb#L49) and then defining a method to get this reference and initialize the associated model like [this one](https://github.com/fog/fog/blob/master/lib/fog/xenserver/models/compute/host.rb#L61).