KeyAttribute Location Fix and Convention Failover

Addressed an issue where the code was looking for a propertytype
attribute instead of looking for the attribute on the property itself.
Models correctly annotated with the [Key] attribute were not being
picked up.  Also, while it is considered best practice to attribute the
key with the attribute, it's also not common practice. Added a failover
to pickup properties that match the pattern [Type]Id.