Removed filter criteria from Query and into DocumentPersister

I noticed that our filters weren't working because the field wasn't getting mapped to the database value from the property value.

i.e.) $deleted with mapped field name "del" was creating "deleted": { $ne: true } instead of "del": { $ne: true }.

This addresses that issue.

Also, the document persister seems to be where this is being handled, so I removed it from the Query and added it where needed.

Tests pass in doctrine as well as my tests for my project and the query profiler shows the proper queries now.

Oh and I also fixed some of the duplicate code in there.

Woot.