Fix: Safety and remote string

Basically this is a workaround and some dictionary safety.

The workaround is [here](https://github.com/hyperoslo/NSManagedObject-HYPPropertyMapper/commit/b6fa81e25e60086fdfa0a92c77165937344f3f78).

If the model doesn't contain the primary key, lets say `noteID` for an entity `Note`. Then the app will crash. That's why we are checking for the existence of this key before sorting the list of elements by primary key.

The reason why this happens is because in another app we have an entity for example `Car`, but it's primary key it's not `carID`, but `carUUID` for example.

The real solution would be to support custom mappings. For example in your model graph (in user info), you should be able to say `carID` maps to `carUUID`.
Fixed https://github.com/hyperoslo/NSManagedObject-HYPPropertyMapper/commit/d11d474204d544e55b1056fe60f5ad2964c20660