Previously, when a field's type was automatically determined, the type of the passed-in descriptor was changed. This could cause problems if the descriptor was reused in another test. This commit updates AbstractFieldsSnippet to create a copy of each descriptor so that setting the determined type does not affect the type of the original descriptor. Closes gh-511