Peewee incorrectly uses json.dumps on parameters in edge-case
Thanks for this, and for the patch. I chose to implement the fix a bit differently than your suggested fix, but they should be equivalent. The solution I merged is more general, and avoids applying conversion to function arguments in any case.

178bc0155bf569c9245296e90ba5066901e208bc Thanks. I also did think that this should be put somewhere else better. 

P/S. How could you keep being responsive to every issues all the time like this? (No need to answer, just me admiring you). 
Not sure how to make the title better but here is a small reproducible snippet:

```python
import peewee as p
from playhouse.postgres_ext import *

db = PostgresqlExtDatabase(
    # The usual config
)

class TestModel(p.Model):
    class Meta:
        database = db
    metadata = BinaryJSONField()

# OK
TestModel.select(p.fn.jsonb_build_object('key', 'value')).execute()
# => SELECT jsonb_build_object('key', 'value') FROM "testmodel" AS "t1"

# NOT OK, see the 'key' is now '"key"', and 'value' is now '"value"' instead
TestModel.select(TestModel.metadata.concat(p.fn.jsonb_build_object('test', 'value'))).execute()
 # =>  SELECT ("t1"."metadata" || jsonb_build_object('"test"', '"value"')) FROM "testmodel" AS "t1"
```