Rename query document field in query struct

Selector and query are both BSON, so a "bson" field is a bit ambiguous.
Change Query constructor args based on CRUD API spec

Query document is the only required field. All other fields are optional. To avoid complicating the constructor, we'll handle the option merging in the init function.
Update tests for revised Query constructor API
Fix setting of zvals with zend_hash_update() when constructing query

New tests cases for fixed hash update code paths on $orderby and $query keys.
Use ZEND_STRS() when passing string/size arguments

ZEND_STRS cannot be used with the zend_hash_update macro, since the preprocessor complains about a missing argument before expanding ZEND_STRS. Creating a variadic macro to wrap zend_hash_update would work, but instead we'll just manually expand ZEND_STRS.
Error if phongo_query_init() filter isn't array or object

This is just a sanity check, since zpp in the Query constructor should ensure we have the appropriate type.
Use array helpers instead of hash iteration in Query option parsing

Fetching a nonexistent key returns zero, which is a safe assignment for the numeric query options. For other options, we raise an error if the expected type is invalid (this should likely be changed to an exception).
Always wrap query filter with $query modifier
Merge pull request #12