Cannot prefetch on MySQL when using limit
The way prefetch is implemented, it does not use joins. Instead, it nests dependent clauses in subqueries. So your example would:

```sql
-- Get branches corresponding to shops in the outer query.
SELECT "t1"."id", "t1"."shop_id" 
FROM "branch" AS "t1" 
WHERE ("t1"."shop_id" IN (SELECT "t2"."id" FROM "shop" AS "t2" LIMIT 10));

-- Get the shops themselves.
SELECT "t1"."id", "t1"."name" FROM "shop" AS "t1" LIMIT 10;
```

It should be possible to write it instead as:

```sql
SELECT "t1"."id", "t1"."shop_id"
FROM "branch" AS "t1"
INNER JOIN "shop" AS "t2" ON ("t1"."shop_id" = "t2"."id")
-- but what do we do with the limit?
-- if there were tons of branches we could end up reading way more data than we need
-- given the LIMIT on the outer query.
```

So instead, maybe something like:

```sql
SELECT "t1"."id", "t1"."shop_id"
FROM "branch" AS "t1"
INNER JOIN (SELECT "t2"."id" FROM "shop" AS "t2" LIMIT 10) as subq ON (subq.id = t1.shop_id)
```

But I'm thinking if MySQL doesn't support the first form, it probably doesn't support this form either? ```sql
SELECT "t1"."id", "t1"."shop_id"
FROM "branch" AS "t1"
INNER JOIN (SELECT "t2"."id" FROM "shop" AS "t2" LIMIT 10) as subq ON (subq.id = t1.shop_id)
```

This form IS supported and works as expected. 

It is equivalent to the `IN subq`, but sadly MySQL query planner is really lame and doesn't get it... Just MySQL things.
```python
from peewee import *

database = MySQLDatabase(...)

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

class Shop(BaseModel):
    name = CharField()

class Branch(BaseModel):
    shop = ForeignKeyField(Shop, backref='branches')

shops = Shop.select().limit(10)
shops = prefetch(shops, Branch)
```

This will fail with error:
`peewee.NotSupportedError: (1235, "This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'")`

It doesn't seem to be supported even on MySQL 8. 

This could be solved by using JOIN on subquery, but I don't see how to do that in a reasonable way.