model_to_dict - Support ManyToManyField
+1 for this This is fixed in 3.0a by 0914cee. Example from test-case:

```python
class Owner(TestModel):
    name = TextField()

class Label(TestModel):
    label = TextField()

class Gallery(TestModel):
    name = TextField()
    labels = ManyToManyField(Label, backref='galleries')
    owner = ForeignKeyField(Owner, backref='galleries')

GalleryLabel = Gallery.labels.through_model

    def test_manytomany_field(self):
        data = (
            ('charlie', 'family', ('nuggie', 'bearbe')),
            ('charlie', 'pets', ('huey', 'zaizee', 'beanie')),
            ('peewee', 'misc', ('nuggie', 'huey')))
        for owner_name, gallery, labels in data:
            owner, _ = Owner.get_or_create(name=owner_name)
            gallery = Gallery.create(name=gallery, owner=owner)
            label_objects = [Label.get_or_create(label=l)[0] for l in labels]
            gallery.labels.add(label_objects)

        query = (Gallery
                 .select(Gallery, Owner)
                 .join(Owner)
                 .switch(Gallery)
                 .join(GalleryLabel)
                 .join(Label)
                 .where(Label.label == 'nuggie')
                 .order_by(Gallery.id))
        rows = [model_to_dict(gallery, backrefs=True, manytomany=True)
                for gallery in query]
        self.assertEqual(rows, [
            {
                'id': 1,
                'name': 'family',
                'owner': {'id': 1, 'name': 'charlie'},
                'labels': [{'id': 1, 'label': 'nuggie'},
                           {'id': 2, 'label': 'bearbe'}],
            },
            {
                'id': 3,
                'name': 'misc',
                'owner': {'id': 2, 'name': 'peewee'},
                'labels': [{'id': 1, 'label': 'nuggie'},
                           {'id': 3, 'label': 'huey'}],
            }])
```
Consider the following models:

```python
class Tag(Model):
    name = TextField(unique=True)

class Gallery(BaseModel):
    title = TextField(null=True)
    tags = ManyToManyField(Tag, related_name='galleries')
```

When calling `model_to_dict` in a `Gallery` instance, one would expect the result dict to be:

```python
{
    'id': 1,
    'title': 'my title',
    'tags': [
        {
            'id': 1,
            'name': 'my tag'
        }
    ]
}
```

But the actual result is:

```python
{
    'id': 1,
    'title': 'my title',
    'gallerytagthrough_set': [
        {
            'id': 1,
            'tag': {
                'id': 1,
                'name': 'my tag',
            },
        },
    ],
}
```

While I do realize this is the result from how `ManyToManyField` works under the hood, the whole point of `ManyToManyField` is to pretend there is no relation table at all. Should't the returned dict be like the first one?