Remove attr() data dependency

- attr() no longer depends on data
- model.setupData() calls notifyPropertyChange() for provided properties only

Fixes #2450, #2461.

Todo:
- [x] Wrap calls to notifyPropertyChange in beginPropertyChanges/endPropertyChanges

 
if we use forEach or map, we should use the enumerableUtils one, which does not need `call`