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).