Fixing dynamic fields to recognize changes that are done nested more than one level down

This probably will want to be cherry picked to master. As shown in the test case in the pull request, when using dynamic fields and changing an object that is nested more than one level down, no changes are reported and so the subsequent save call does not change any data. This issue does not exist when the field is declared as a Hash.