Refactoring attribute definition a little bit
Added Association Attributes and class methods to work with the association objects.

With one single class method is possible to create an attribute to hold
the identity, a method to load a model based on that identity and a
method to set a new identity which accepts an object that responds to
identity as well as the identity itself.
Renaming Association Attribute Models
Avoinding behavior breaking on HasMany when changing HasOne
Avoiding duplicate reject logic

The reject is already defined in #all_attributes. There is no reason to not use it!
Isolating Association Models from Attributes
Reworked Associations to be independent of Attributes
Refactoring Duplicated Code
Splitting Behaviors in different methods
Fix build on ruby 1.8.7
Pluralizing methods on Fog::Associations::Many
Bringing back has_one and has_many interfaces
Removing association interface
Doing some code cleanup
Merge pull request #60 from zertico/association_methods

Added Association Attributes and class methods to work with the association objects
Added condition to check attributes setted to nil on attribute getter.

This change make possible to set an attribute to nil and make it return
nil even if a default value exists for that attribute.
Added possibility to pass objects when working with Identity Associations
Removing duplicated build

Its not necessary to include ruby 2.1.0 on versions to build because it
is already defined to build in matrix
Fixed Coveralls build
Merge pull request #61 from zertico/nil_value

Added condition to check attributes setted to nil on attribute getter.