Parenthesis for CompoundQueries in FROM clause
What version of peewee are you using? In my testing locally it appears the parentheses are correct:

``` python
uq = User.select(User.username).where(User.username << ['a', 'b', 'd'])
        oq = (OrderedModel
              .select(OrderedModel.title)
              .where(OrderedModel.title << ['a', 'b'])
              .order_by())
        union = uq | oq
        print union.sql()
```

Prints:

``` sql
SELECT 1 FROM (
    SELECT "t2"."username" FROM "users" AS t2 WHERE ("t2"."username" IN (?, ?, ?)) 
    UNION 
    SELECT "t2"."title" FROM "orderedmodel" AS t2 WHERE ("t2"."title" IN (?, ?))
)
```
 I use `peewee (2.4.0)`.
And just found that there's 2.4.1 available. Please, don't close the issue for a couple of days, ok? I'll check with 2.4.1 tomorrow and will write here.
 Sure thing, I added a unittest which shows that the parentheses are present.
 Indeed, seems it had been fixed recently. After upgrading it has parenthesis. Sorry for bothering. peewee is really cool piece of software. :)
 No problem at all! Thanks for opening the issue, glad it's fixed for you.

I made union query using `|` and was hoping to put it into `from_` of another query, but compiled query contains no parenthesis and results in error: `ProgrammingError at or near "SELECT`. Because inner query is not surrounded by parenthesis. Compiled output something like that:

```
inner = q1 | q2 | q3
q = Model.select(SQL('f1'), SQL('f2')).from(inner.alias('q')...

results in:

SELECT f1, f2 FROM q1 UNION q2 UNION q3 AS q
```

And fails. But if I try to do it manually like: `SELECT f1, f2 FROM (q1 UNION q2 UNION q3) AS q it is ok. (q1-q3 is just substitues for actual queries, to simplify example). Database is postgresql. Can we somehow fix it or am I missing some functionality for that?
