Have factories build associations when provided in defaults

This modifies the factories applying args behavior to build
associations when provided defaults for them. This only occurs
when an association is not already set on the record/model.
This sets up providing defaults before a stack begins walking the
dependency tree. This way a record can set polymorphic data on
a model it depends on and the stack will be able to traverse the
associations.