respect custom primary keys for nested attributes.

It doesn't make sense to require using 'id' for the primary key in
these hashes, when we explicitly allow for the specification of primary
keys.
Merge remote-tracking branch 'origin/respect-nested-primary-keys'