Fix incorrect usage of attrs in widget model sync code

This does not work in master

```python
this.model.set('x', x);
this.model.set('y', y);
this.model.set('z', z);
this.touch();
```

instead one has to write 

```python
this.model.set('x', x);
this.touch();
this.model.set('y', y);
this.touch();
this.model.set('z', z);
this.touch();
```

because the attr diff is only maintained for the last set operation.  This patch fixes this so the first method can be used.