Allow PK attributes to take precedence over field names.

I encountered an issue whereby I had a field called *Id* that I **didn't** want to be the primary key, and  had an additional field which we I want to be the primary key, decorated with the **PrimaryKey** attribute.  Upon table, errors were thrown because the *Id* was still being created as a PK.

I have added a failing test, and a proposed fix here.