more NSNull-aware automatic wrapping

Since the raison d'être of NSNull is to allow one to represent nil values in NSDictionary or NSArray, it makes sense to translate NSNull to nil as soon as we wrap the corresponding parent object.