remove filter criteria from query as it is handled in the DocumentPersister
prepare collection/filter queries
DocumentPersister::prepareQueryOrNewObj() method is now used instead of DocumentPersister::prepareSubQuery().

DocumentPersister::convertTypes() was removed and now PHP type to database value conversion happens in the same query iteration in the DocumentPersister::prepareQueryOrNewObj().
Regression test for reference-many collections and filter criteria

This verifies injection of filter criteria into owning and inverse sides of reference-many collections.

The behavior for owning sides is not ideal, due to how proxies are handled. On a side note, sort/limit/skip/criteria support for owning side collections is also odd and should probably be removed. Criteria support for (persistent) collections, when implemented, will be a more viable alternative.

See: #593