Selecting from a union causes peewee.InterfaceError
The issue is the final `select()` method.

```python

q1 = Data.select()
q2 = Data.select()
query = q1.union(q2)
``` I probably wasn't explaining the issue well enough, but focused on giving a minimal example to reproduce the issue.

What I have are two different queries producing two different tables. I then select from the union of these tables, and do some calculations in the select statement. It looks something like this:

```python
complex_query1 = ...
complex_query2 = ...
complex_query1.union(complex_query2).select(
    # Do calculations here based on this union
)
```
I want to be able to select from this union, as it allows me to do the calculations in a nice way. I know there are workarounds, but would be more clean to do something like this. Then use the `select_from()` API instead.
Selecting from a union of two tables causes an InterfaceError.
If i write this query:
```python
q = (
    Data
    .select()
    .union(
        Data
        .select()
    ).select()
)
```
and call `q.execute()` I get the following error:
```
peewee.InterfaceError: Query must be bound to a database in order to call "execute".
```
If I call execute with a database like this: `q.execute(database)`, then it works fine.
I suspect the issue has something to do with the `select()` method of the `ModelCompoundSelectQuery` class not using the database from the BaseModel, but I don't have enough knowledge about the library to fix it myself. The issue remains for other methods that create a `ModelCompoundSelectQuery` object, like `except_()` and `union_all()` as well.

A fix for this issue would be greatly appreciated.