Updated postgres_ext's HStoreFields are not "dirty"
Yea, the way peewee detects "dirty" fields is based on observing `__set__` on a descriptor, so it's not perfect in the sense that it actually keeps track of initial state and does a comparison at `save()`-time. You are free to subclass and extend the `Model` behavior to track state more thoroughly, but at present I consider this to be a known limitation.
Reproduced with peewee-3.6.4:
```
from datetime import datetime
import sys, os
import db_models as beo

from playhouse.shortcuts import model_to_dict, update_model_from_dict
from playhouse.postgres_ext import *

import config
from datetime import datetime
from playhouse.postgres_ext import *
import psycopg2
from playhouse.shortcuts import model_to_dict, update_model_from_dict

database = PostgresqlExtDatabase(database=config.POSTGRES_DATABASE,
                                 user=config.POSTGRES_USER,
                                 password=config.POSTGRES_PASSWORD,
                                 host=config.POSTGRES_HOST,
                                 port=config.POSTGRES_PORT,
                                 cursor_factory=psycopg2.extras.DictCursor, register_hstore=True)


class ModelBase(Model):
    class Meta:
        database = database
        only_save_dirty = True

class Waybill(ModelBase):
    id = IntegerField(primary_key=True)
    waybill_number = CharField(null=True)
    hwb_extras = HStoreField(null=True)

a = beo.Waybill.select().where(beo.Waybill.id == 1).first()
a.hwb_extras
{'Test': 'Dirty!'}

a.hwb_extras['Updated'] = 'I\'m so dirty!'
a.hwb_extras
{'Test': 'Dirty!', 'Updated': "I'm so dirty!"}

a.save()
False

a.waybill_number = '12345678'
a.save()
1
```