Adds keypath mapping support

By optionally returning +keyPathForRemoteKey: in any NSManagedObject subclass, it checks for a keypath related to the remote key, so be able to call -valueForKeyPath:
This allows mappings with keypaths, for objects that don't need to be nested in CoreData. It may need caching support, and refactoring, but it works just fine.