load association from attributes if they exist

Make has_one use the standard define_cached_method that the other
relationships use.
Because of HashResourcePassthrough, embedded objects were no longer
instantiated in the attributes hash when the object is loaded.
This commit is the first step toward uniform interaction with the
attributes hash--it will no longer have objects.