SQLite doesn't like double parens
``` sql
SELECT t1."id"
FROM "users" AS t1 
WHERE Exists((SELECT t2."id" FROM "users" AS t2))
```
 Nice, thanks!

This sample program shows the problem

``` python
from peewee import Model
from peewee import fn
from peewee import SqliteDatabase

db = SqliteDatabase(':memory:')

class User(Model):
    class Meta:
        db = db

User.create_table()

list(User.select().where(fn.Exists(User.select(User.id))))
```

Func always wraps the nodes in parens: https://github.com/coleifer/peewee/blob/2.2.5/peewee.py#L1141

And nested selects are always in parens: https://github.com/coleifer/peewee/blob/2.2.5/peewee.py#L1174

One approach might just be in the `isinstance(node, Func)` detect if the sql to wrap already `startswith('(')` and `endswith(')')`, but maybe there is something more clever.
