KeyError when iterating over query from subquery with CTE
Thanks for the succinct report. This is now resolved.
Database: Postgresql 12
Peewee version: 3.14.0

Model:
```
class BaseModel(Model):
    class Meta:
        database = database


class Channel(BaseModel):
    channel_id = IntegerField(primary_key=True)
    channel_name = TextField()

    class Meta:
        table_name = 'channel'


class UserMessage(BaseModel):
    message_id = UUIDField(index=True, primary_key=True)
    channel_id = ForeignKeyField(column_name='channel_id', field='channel_id', model=Channel, on_delete='CASCADE',
                                 lazy_load=False, index=False)
    user_id = IntegerField()
    timestamp = IntegerField()

    class Meta:
        table_name = 'user_message'
        indexes = (
            (('channel_id', 'timestamp'), False),
        )
```
Query:
```
UserMessageAlias = UserMessage.alias()
    subquery = UserMessageAlias \
        .select(UserMessageAlias, fn.RANK().over(order_by=[UserMessageAlias.timestamp.desc()])
                .alias("rank")) \
        .where(UserMessageAlias.channel_id == 26) \
        .order_by(UserMessageAlias.timestamp.desc()) \
        .limit(200)

    users = set()
    for i in range(100):
        users.add((random.randint(0, 999), random.randint(0, 150)))

    user_cte = ValuesList(users).cte("user_streamer", columns=["uid", "limit"])
    query = UserMessage \
        .select(subquery.c.message_id, subquery.c.channel_id, subquery.c.user_id,
                subquery.c.timestamp, subquery.c.rank) \
        .from_(subquery) \
        .join(user_cte, on=(
            (subquery.c.user_id == user_cte.c.uid) &
            (subquery.c.rank <= user_cte.c.limit))) \
        .with_cte(user_cte)

    for mes in query:
        print(mes)
```
I got this error:

```
Traceback (most recent call last):
  File "test.py", line 111, in <module>
    get_messages()
  File "test.py", line 100, in test_bug
    for mes in query:
  File "/tmp/test/venv/lib/python3.8/site-packages/peewee.py", line 4361, in next
    self.cursor_wrapper.iterate()
  File "/tmp/test/venv/lib/python3.8/site-packages/peewee.py", line 4280, in iterate
    result = self.process_row(row)
  File "/tmp/test/venv/lib/python3.8/site-packages/peewee.py", line 7548, in process_row
    instance = objects[key]
KeyError: <peewee.ModelSelect object at 0x7fbee0c78d90>
```


But if I use dicts() or tuples(), it works
