Add ability to find and create nested model instances from an NSDictionary

Fixes #60

### Changes

- promotes a few selectors to class scope, for reuse between `update:` and `findOrCreate:`
- inspects nested `NSDictionary` instances and find/creates a new object where applicable
- `update:` is slightly less efficient since the attributes dictionary is iterated over twice: Once to sanitize the keys/values, and again to run `setSafeValue:forKey:`. This caveat could be prevented using a blocks implementation (example in baaaa32), but it seemed more difficult to follow.