calling len() on a query should do a database count() rather than load the whole result set into memory
so i have a feeling that i'm going to get a response along the lines of "we preload all the data in case the user wants to access/use it later", similar to the rationale given for why `first()` doesn't use a `limit 1`.  i just would like to point out that both of these are directly counter to the stated "peewee doesn't do things based on what it 'thinks' you might want" policy.
 > "peewee doesn't do things based on what it 'thinks' you might want"

Actually I think that current behavior is in line with this policy. If I wanted a database count query, I would've called the `count()` method instead of using `len`. 
 It actually was, and has been documented, for some time:

45e096e94afb3c4496ac961f64ada374d27b2529

currently calling `len()` on a query loads all the records from the database, and then calls `len()` on the resulting list of objects.  this is hugely sub-optimal.

in most instances (ie if it hasn't already been cached, etc.) using `count()` on the database would be both the expected behavior and much more efficient.

i've not seen anything in the documentation that would warn users of the current behavior or any explanation as to why it would do this.
