Don't modify args in TableDefinition#primary_key

Previously, if you reused a hash that was passed into a table definition,
then subsequent tables' primary keys would be set to "true" instead of "id".

This is the same as #10572 which didn't make it into 4.0.0.rc2 from 4-0-stable.