Prefetch same model error
I don't think you have any idea how prefetch is intended to be used... You don't need prefetch at all and you can do this all in a single query:

```python
TaskFile = File.alias()  # File reference for Task.file object.
versions = (Version
            .select(Version, Task, Shot, File, TaskFile)
            .join(Task)
            .join(Shot)
            .join(File)
            .join_from(Task, TaskFile))

for version in versions:
    print(version.name)
    task = version.task
    print('  ', task.name)
    print('  - shot=', task.shot.name, ' file=', task.shot.file.name)
    print('  - file
```
I have some tables like these:

```
class File(ModelBase):
    name = CharField(column_name='name', null=False)

class Shot(ModelBase):
    name = CharField(column_name='name', null=False)
    file= ForeignKeyField(column_name='file_id', model=File, field='id')

class Task(ModelBase):
    name = CharField(column_name='name', null=False)
    file= ForeignKeyField(column_name='file_id', model=File, field='id')
    shot = ForeignKeyField(column_name='shot_id', model=Shot, field='id')

class Version(ModelBase):
    name = CharField(column_name='name', null=False)
    task = ForeignKeyField(column_name='task_id', model=Task, field='id')
```

When I try prefetch like this:

```
query = Version.select().limit(50)
prefetch(query,
         Task, File, (Shot, Task), File
         )
```

There will be an error:

```
peewee.ProgrammingError: missing FROM-clause entry for table "t2"
LINE 1: ...hots" AS "t1" WHERE ("t1"."file_id" IN (SELECT "t2"."id" ...
```

If I use prefetch twice:

```
query = Version.select().limit(50)
prefetch(query, Task, File)
prefetch(query, Task, Shot, File)

for q in query:
    print q.task.name
    print q.task.file.name
```

There are still lots of query being executed, it seems like the first prefetch doesn't work.