Do not yield an uninitialized object to a block given to find_or_create

This is a change in the previous behavior. Formerly, if you did, for example,
Model.where(name: 'foo').find_or_create { |model| model.field = 'bar' }, the
new model record would have its "field" attribute set to "bar" whether or not
the model was newly created or existed prior. Now, only newly-created models
would have their "field" attribute set to "bar". This brings the behavior of
blocks in line with that of attributes passed to the same method.