function CustomQuery(criteria, options) {
    if (!(this instanceof CustomQuery))
      return new CustomQuery(criteria, options);
    Query.call(this, criteria, options);
  }
Converts this query to a constructor function with all arguments and options retained.

#### Example:

    // Create a query that will read documents with a "video" category from
    // `aCollection` on the primary node in the replica-set unless it is down,
    // in which case we'll read from a secondary node.
    var query = mquery({ category: 'video' })
    query.setOptions({ collection: aCollection, read: 'primaryPreferred' });

    // create a constructor based off these settings
    var Video = query.toConstructor();

    // Video is now a subclass of mquery() and works the same way but with the
    // default query parameters and options set.

    // run a query with the previous settings but filter for movies with names
    // that start with "Life".
    Video().where({ name: /^Life/ }).exec(cb);

@return {Query} new Query
@api public