CBLNestedModel memory optimization - used to store original NSDictionary from which the class was stored in addition to storing converted values into objects in the synthesized properties of the class, thus doubling memory usage. Now we remove all properties from the original jsonObject, and keep a JSON dictionary of unused keys by the class, and later encode the properties into this unused key JSON to preserve document contents that might not have been encoded by the class.