Unable to select/update model after migrating ForeignKeyField: RecursionError
I have a migration script that first adds a column and then initializes it. I am using MySQL. However, after adding the column, the model's `ForeignKeyField` is changed in a way that results in a recursion error by simply selecting or updating the new field:

```
RecursionError: maximum recursion depth exceeded
```

To reproduce it, imagine we have the two tables below, and I want to add a `ForeignKeyField` column to the `Rice` table:

```python
from peewee import Model, ForeignKeyField, TextField

class Bean(Model):
    name = TextField(default="Red")
    class Meta:
        database = db

class Rice(Model):
    name = TextField(default="Brown")
    bean = ForeignKeyField(Bean, null=True, backref='rices')  # <-- we want to add this field
    class Meta:
        database = db
```

Now, let's say I migrate the `Rice` table with something like this:

```python
migrator = MySQLMigrator(db)

migrate(
    migrator.add_column(
        Rice._meta.table_name,
        Rice.bean.column_name,
        Rice.bean
    ),
)
```

As a result of this line: https://github.com/coleifer/peewee/blob/7eb7498018b4265ce7e79c3e2b0b90a93d622d45/playhouse/migrate.py#L237 the value, `Rice.bean.name`, gets changed from `"bean"` to `"bean_id"`. This causes a `RecursionError` the next time we select that field.

```python
Rice.select().first()  # FAIL

~/.local/share/virtualenvs/acm-api-UVOmdwT4/lib/python3.7/site-packages/peewee.py in __set__(self, instance, value)
   4380 
   4381     def __set__(self, instance, value):
-> 4382         setattr(instance, self.field.name, value)
   4383 
   4384 

RecursionError: maximum recursion depth exceeded
```