added support for key-path to property mapping

This PR adds support for mapping properties to a key-path in the inbound `initWithObject:` attributes. This is helpful when passing serialized API response to `initWithObject:` when you do not control the API response structure. For example, an API may return an attribute named `id`, which is reserved. This is also helpful in situations where the client wishes to collapse the API response structure from say `user.firstName` to, simply, `firstName`.

A test has been added to `ObjectTests` for this functionality.