[WIP] Feature: Association scopes

```
// 1:M/N:M scope on target
Post.hasMany(Comment, {
  scope: {
    commentable: 'post'
  }
}

// N:M scope on through model
Post.hasMany(Tag, {
  through: {
    model: ItemTag,
    scope: {
      taggable: 'post'
    }
  }
}
```

Any association getters, setters or adders for post's comment association will then apply {commentable: 'post'} to the values or the where.
Not sure this part qualifies as a highly repeatable routine - But we might as well be prudent i suppose :)