"He told me you killed my PK!" "No, I am your PK" (Added ReferencedKey API to allow specification of non-primary principal key)

This is the counterpoint to the ForeignKey API and is used to specify the key properties at the principal end of the relationship.

Note that Migrations doesn't support yet creating the required candidate keys so functional testing is limited to in-memory. Also, we decided this morning to remove the parameterless overloads of ForeignKey amd ReferencedKey, but I will do that as a separate change.