fix clearDirty function to properly clear all dirty property states, also invoke store.when event hook to properly pass all args