Disable most of OnPropertyChanged logic for non-shared models.

Automatic validation, dirty marking and MessageBus broadcast on
OnPropertyChanged only happens if the model IsShared now.

This change shaved off around 50% of the time spent in the method in
overall.