[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.
V8's `.bind()` implementation [is unfortunately slow](http://stackoverflow.com/questions/17638305/why-is-bind-slower-than-a-closure/17638540#17638540). It's preferable as a practice in highly repeatable routines to use the `self` closure variable...