Allow arrays and object properties to be missing when initializing from a dictionary

Handle missing keys and NSNull values for arrays and relationships which don't
have a default specified as there's an obvious default for them and people are
confused by them being required.

@alazier