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.
I certainly understand this and it seems sensible. That said, is it a behavior change? (I just don't remember, if it is, it seems like a breaking change).