Allow QueryGenerator instances to be used as args

So you can build sub expressions or sub queries:

    $q = new QueryGenerator()->useOr()->where("x")->where("y")
    $b = new QueryGenerator()->where($q)->where("z");
    
    $b->build() == ["WHERE ((x) OR (y)) AND (z)",[]];

It's also useful if you just want to create a part of a query for use
elsewhere.

    new QueryGenerator()->where("z")->build(true) == ["(z)", []];