Initial version

Usage:

```
var Dummy = DB.Model.extend({
  tableName: 'table',
  hasTimestamps: true,
  touches: ['someRelation'],

  someRelation: function () {
    return this.belongsTo(SomeTarget);
  },
});

Dummy.fetchAll().then(function (collection) {
 return collection.first().save();
});
```

Now, when saving an instance of the `Dummy` model, all related `SomeTarget` models will receive an updated timestamp. If the related model does not have timestamps, the update is skipped. I didn't check for transactions but this should probably still be implemented, else we might end up with half-updated relations, not good!

Thoughts?