Feature/key path mapping transformation

Gents - this PR supersedes https://github.com/realm/realm-cocoa/pull/1074. It contains similar functionality, but I found myself needing some of the translation features that were mentioned in the comments for a project. I debated a few different patterns and settled on this. I'm obviously open to discussing things.

This PR does not solve the per-object translation. However, it sets the stage for it in a future PR. An additional initializer on `RLMObject` could be added (along with a read only property) to make this possible - e.g. `initWithTranslation:andObject:`. Currently, this would require that the instance or the translation property itself be passed to the utility function `RLMValidatedDictionaryForObjectSchema`. Noticing that you are making structural changes to that class, I think this requires more discussion before adding.