Peewee cleanups all Model.dirty_fields with only params
Thanks, this should be fixed now. @coleifer Thank you for so hot fix.
For me was unexpected behavior with cleanup model dirty fields if we save model with `only` params. 
https://github.com/coleifer/peewee/blob/master/peewee.py#L6600-L6601
In my opinion, The saved field should be just removed from dirty fields.
Please see invalid behavior in the following code snippet.
```
import peewee
from peewee import *
import logging
import sys

log = logging.getLogger()
log.setLevel(logging.DEBUG)
handler = logging.StreamHandler(sys.stdout)
log.addHandler(handler)
print(peewee.__version__)

db = SqliteDatabase(":memory:")


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

    name = CharField()
    description = CharField(null=True)


db.create_tables([Example])

model = Example.create(name="foo", description="bar")
model.name = "bazz"
model.description = "example bar"
model.save(only=[Example.name])
#some other business logic
if model.dirty_fields:
    model.save()

model = Example.get_by_id(model)
print(model.name, model.description)
assert model.name == "bazz"
assert model.description == "example bar"
```
Output
```
3.14.4
('CREATE TABLE IF NOT EXISTS "example" ("id" INTEGER NOT NULL PRIMARY KEY, "name" VARCHAR(255) NOT NULL, "description" VARCHAR(255))', [])
('INSERT INTO "example" ("name", "description") VALUES (?, ?)', ['foo', 'bar'])
('UPDATE "example" SET "name" = ? WHERE ("example"."id" = ?)', ['bazz', 1])
('SELECT "t1"."id", "t1"."name", "t1"."description" FROM "example" AS "t1" WHERE ("t1"."id" = ?) LIMIT ? OFFSET ?', [1, 1, 0])
bazz bar
Traceback (most recent call last):
  File "dummy_sqlite.py", line 36, in <module>
    assert model.description == "example bar"
AssertionError
```


 