Filter fields

Issue #14 

Added new method overloading find more`find:usingIndexes:skip:limit:filter:` passing `nil` to this method for the query parameter will result in all fields being returned.

Main Question: Should the user define fields to return in the query object to match the syntax used by the service?

Tests are still needed, I've opened this PR for discussion around how the user should interact with this functionality, should find have the additional parameter or should the filter be defined in the way the Cloduant Service expects?


This validation logic belongs at the start of the -find implementation because it's validating user input before we get started. This allows -find to fail before executing the query.