Cyclic ManyToManyField issues
It's actually not necessary to add a "backref" `ManyToManyField` as Peewee already does this. What you want is something like:

``` python
class Author(BaseModel):
    author = TextField(unique=True)

class Software(BaseModel):
    program = TextField()
    contributors = ManyToManyField(Author, through_model=DeferredContributor, related_name='software')
```

`Author.software` will now be a many-to-many field as well, without the need to re-define it.

Code below produces, instead of expected "1". Running Peewee 2.8.1. Same result when running HEAD.

```
Traceback (most recent call last):
  File "orm.py", line 26, in <module>
    DeferredAuthor.set_model(Software)
  File "/usr/local/lib/python3.5/site-packages/peewee.py", line 422, in set_model
    self.field.rel_model = rel_model
AttributeError: 'DeferredRelation' object has no attribute 'field'
```

ManyToManyField works great when just one object contains it. DeferredRelation seems to break it. If this is not a bug I would love some advice on making this work. Note I am not using `get_through_model` because in reality I'm using Postgres with all the tables in already place.

``` py
from peewee import *
from playhouse.fields import *

db = SqliteDatabase(':memory:')

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

DeferredContributor = DeferredThroughModel()
DeferredAuthor = DeferredRelation()

class Software(BaseModel):
    program = TextField()
    contributors = ManyToManyField(DeferredAuthor, through_model=DeferredContributor)

class Author(BaseModel):
    author = TextField(unique=True)
    software = ManyToManyField(Software, through_model=DeferredContributor)

class Contributor(BaseModel):
    contributor = ForeignKeyField(Author)
    software = ForeignKeyField(Software)

DeferredContributor.set_model(Contributor)
DeferredAuthor.set_model(Software)

db.create_tables([Contributor, Author, Software], safe=True)

Author.create(author='john')
Software.create(program='hello', author=1)
Contributor.create(contributor=1, software=1)
db.commit()

print(Software.get(Software.program=='hello').contributors.count())
```
