Make filter work when there are multiple joins to the same table
This is some pretty dense code... Can you summarize the changes? I'm not sure I'm going to merge it in yet, but some test-cases would also be helpful for my understanding of these changes.
 Actually...man, this code is very difficult to parse in my head. Might be the 3 hours of sleep I'm running on, but since `filter()` is deprecated anyways I'm not too excited about adding this much complexity and then having to maintain it.
 Let me take a stab at cleaning it up, and I'll add some tests as well. As I mentioned before, I like the way that the flask-peewee REST API processes the query string to generate a query, which relies on `filter()`. Maybe this could be moved to the playhouse instead?
 On second thought, I decided to move this to the REST base classes itself API. Seems more logical if you're deprecating `filter()` anyway.
