Complete type-safe property updating:
Make UpdateProperty() obsolete and replace with SetProperty() method.
Add type-safe property updates to ViewModel base class.
Update code snippets to take account of recent api changes.