Cleaned the way sync_fields is handled

I have cleaned the way SyncFieldMixin works. Now you don't have to break MRO in some cases. You also don't need to add any logic to your child classes' save() method. Everything you need is to add the mixin and implement .get_synced_objs_and_fields() This would also work with more complicated network of syncing.