UNION query with limit
Thanks for your work on the peewee library.
I have just found an issue closely related to #566, this time on mySQL.

The case is:

```
query_1= Object.select().where(SQL(sql_1)).limit(10)
query_2= Object.select().where(SQL(sql_2)).limit(10)

results = (query_1 | query_2).execute()
```

Even if both query_1 and query_2 return 10 non-overlapping records, this does not return the proper 20 records. It only returns 10.

The reason is missing parenthesis around each side of the UNION clause.

peewee generates:
`SELECT ___ FROM ___ WHERE ___ LIMIT 10
UNION
SELECT ___ FROM ___ WHERE ___ LIMIT 10`
this returns only 10 records.

where it should generate:
`(SELECT ___ FROM ___ WHERE ___ LIMIT 10)
UNION
(SELECT ___ FROM ___ WHERE ___ LIMIT 10)`

which will return 20 records as it is supposed to. 

I cannot determine a way to force the parenthesis around each side of the union, however maybe I have overlooked something.

Read more about limit and union behavior here: [http://stackoverflow.com/questions/1415328/combining-union-and-limit-operations-in-mysql-query]
