Now, singleton Get*/TryGet* is what determines PK

The old behavior was that "Get" was always the primary key; you couldn't
have a "GetById" method and have that be the primary key
Add "SetupEntity"

This will open the door to having entities that are shared throughout the
data layer.
Primary key can now be explicitly defined