Change joinTableName/joinTableModel/useJunctionTable option to one through option

Instead of having joinTableName/joinTableModel/useJunctionTable options, we now have one through option with bc:

`A.hasMany(B, {through: 'AB'})`

```
AB = define()
A.hasMany(B, {through: AB})
```

`A.hasMany(A, {through: null})`