Last touching on #all_attributes

It is now well defined and covered by tests. The behavior expected is to
not return any default value on persisted objects and return the default
values on non persisted objects in attributes not defined.

The method #all_attributes were initializing a new objet with the has of
attributes from the actual object to get the final hash of attributes,
but this were leading to the wrong behavior (not the expected).

@geemus. The method #all_attributes is now working as expected. I tested it against `fog-xenserver` locally and ll went fine.