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 guess I might lean toward still having `has_one` and `has_many` as the interface to this. I think that is a bit clearer than the magnitude stuff. Similarly, I might be tempted to suggest `has_one_identity` and `has_many_identities` or similar to make those extra obvious.