* Fixes for Pointer Permissions
- Fix bug that would leave public CLP when setting a new set of permissions
- Sets empty permissions if missing to match parse.com API
- Updates tests to reflect changes
* Adds regression test for #1991
* Fit -> It
* Use adapter.count
* use adapter.upsertOneObject
* Use adapter.deleteObjectsByQuery
* Use adapter.find
* use adapter.find
* Update tests to avoid mongoFind
* Fix a test to not use mongoFind
* Fix a test to not use mongoFind
* remove some mongoFind
* Remove some mongoFind
* Remove some mongoFind
* Remove more mongoFind
* remove more mongoFind
* remove more mongoFind
* remove more mongoFind
* remove more mongoFind
* remove more mongoFind
* remove more mongoFind
* remove more mongoFind
* remove more mongoFind
* Restore update ios device token with duplicate device token to original
* remove a mongoFind
* remove a mongoFind
* formatting
* formatting
* remove a mongoFind
* remove a mongoFind
* remove a mongoFind
* kill mongoFind
* Fix tests
* Fix tests
* fix syntax
* Fix test
* Break dependency on MongoCollection for updateMany
* Move transformWhere usage into MongoTransform
* Pass parse schema into transformUpdate
* break dependency on schemaController
* remove schema parameter
* move key name validation up one level
* Move validation out of mongo adapter
* Move validation into Parse Server and transformUpdate in Mongo Adapter
* Update mongo adapter
* Use adapter API
* use and fix mongo adapter api
* Remove/rename stuff
* Kill transform in DBController
* better imports for transform
* Tidy ConfigRouter
* Remove schemaController in more places
* Remove comment
* Move Parse Server logic into Parse Server and out of MongoAdapter
* Move untransforming up one level
* Make find() in MongoStorageAdapter
* Put nested object untransforming into it's own function
* Simplfy nested untransform
* Don't mess with inner object keys called _auth_data_*
* Prevent untransforming inner object keys named _p_*
* Fix inner keys named _rperm, _wperm
* Fix bugs with inner objects behaving strange when other fields have same name as key in specific circumstances
* remove params from untransform nested object
* Revert changes to find
* Split transformAtom into transfromTopLevelAtom and transformInteriorAtom
* Use single param for inArray and inObject
* Tidyness in transformKeyValue
* Add transformInteriorKeyValue
* Remove update from tranformInteriorKeyValue
* Split out transform update
* Move validation out of transfromUpdate
* Remove force paramater from transformTopLevelAtom throw error after if necessary
* Turn transformKeyValue into transfromKey since it is only used for that purpose
* Remove unnecessary stuff from transformKey
* convert transformKey to use parse format schema
* interior keys fixes
* Add test for interior keys with special names
* Correct validation of inner keys
* destructuring in DB controller
* deleteObject in db adapter
* Turns out we can't have delete by object ID because of ACLs...
* Fix tests
* destructure acl
* Don't reject with object
* WIP: Initial pointer permissions
* Process Pointer perms when no matching CLP are found
* Additional tests with read lockdown
* Create operation lockdown with pointer permissions,
on parse.com, when an class is locked down with write pointer perm, users can't create objects even if they set their own as the pointer permission key
* Adds test case for multiple write PointerPerms
* Adds validation for pointer permissions when setting
* Adds tests for validating pointer permissions column types
* Adds tests for complex ACL/CLP/PP hierarchy
* Restores power of the master
* Adds validation of borked fields
* Adds complex test for find
* Adds more variations around PointerPermissions tests
* Tidy up transformKeyValue
* Specialize transformKeyValue for object creation
* remove keys that never appear in creation requests
* rename function
* remove local var
* early exit for simple keys
* Refactor create
* Force class creation when creating an object
* Pass parameters to key value transformer
* No need to check for array in this func
* start using Parse Format schema in MongoTransform
* Remove call to getExpectedType
* add tests to ensure client can't see _PushStatus