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.
Since single/multiple don't share much code, I think it might be a bit cleaner/clearer to have an association class (or something) that just had the shared logic and that was the parent to both. That way there is less concern of behavior change in single affecting multiple.