Support for Expression-based joins when using aggregate_rows()
Thanks a lot. I'm sorry for all the pull requests and stuff. These are just the issues I've found thus far in using your ORM in a personal project of mine, and I thought it'd be nice to share them so others don't run into the same =)
 No, I appreciate it! Thanks for your help!
 Sure! =)

Joining on an Expression when using aggregate_rows() would cause an error because rel_for_model only handles Fields.

Consider the following data models:

``` python
class Organization(BaseModel):
    name = CharField()


class Review(BaseModel):
    rating = IntegerField()
    organization = ForeignKeyField(Organization, related_name='reviews')
```

I want to query for an organization by ID and eagerly load its reviews that are higher than 3.

``` python
(Organization
 .select(Organization, Review)
 .join(Review, JOIN_LEFT_OUTER,
        on=((Review.organization == Organization.id) & (Review.rating > 3)).alias('organization'))
 .where(Organization.id == 1)
 .aggregate_rows())[0]
```

Note the usage of [0] because of #483. The above would fail because rel_for_model does not support Expressions. I am doing the filter on the join instead of the where, because the query should still pull organization data even if there are no reviews above the rating of 3.
