Through relations

**Do not  merge**

This PR adds the through keyword to hasOne and hasMany relations. It allows to use or combine remote relations on the model. This feature is modeled after Rails' through functionality. 

Aside from that, this PR adds a bunch of functionality that I want to run by you, @steffansluis @rogierslag, and best is to go through the specs that I added, they should be pretty self-explanatory. 

I don't think this PR is finished yet, so please don't merge. 

**Edit**:
Things to be done:
- [ ] Rewrite/rethink collection structure
- [ ] Write tree traversal methods for relations and associations **(optional)**
- [ ] Use the above tree traversal in through relations **(optional)**