update local and remote key handling for entities
update local and remote key handling for entities

Rather than the previous process that only used the actual attribute for the local key, this now uses the actual primary attribute (either the marked attribute or the default remoteID attribute) and pulls out the provided remote key. 

Unfortunately this doesn't add additional tests for this case. 

Fixes #58.
nbarnold01/Sync,hyperoslo/Sync,hyperoslo/Sync