Performance gain on primary key lookup

Added a static dictionary that "caches" the PK lookup after the first
time.  This way it doesn't have to use reflection to get the PK property
of the entity after the first time.  It is 3 times as fast getting it
from the dictionary than using the Reflection based on my simple
testing.