Add specs for Model.primary_key and Model.load

Model.load will now cache loaded models, and mark those models as not
new to allow accurate tracking.