findOrCreate does not modify inputs

This helps when making spy assertions about what arguments findOrCreate
was called with.
Increase similarity to original code
Merge pull request #1074 from elliotf/findOrCreate_does_not_modify_inputs

Do not modify input to findOrCreate