Support IN and INNER JOIN subqueries on prefetch
Nice patch, thank you. I've rebased your commits into a single commit af3f34f10555a22003726dca90fb2d577617656a and amended it to respect the line-length limit, but otherwise your changes are all merged.
This PR intends to solve #2631 

It adds a parameter to `prefetch` that allows the user to choose the type of subquery performed. Using `INNER JOIN` is desirable when combining `LIMIT` with MySQL as the current implementation is not compatible.

Usage example 
```python
from peewee import PREFETCH_TYPE

people = Person.select().order_by(Person.name)
query = people.prefetch(Note, NoteItem, prefetch_type=PREFETCH_TYPE.JOIN)
```

The current behavior should remain the same as `prefetch_type` default to using the current implementation. I suggest whitespace changes are ignored when diffing `prefetch_tests.py`.

It goes without saying, but any feedback is welcome.