Tagcloud

I think it's OK now. Something got mixed up in the diff view. Same pull request as before :wink:
Yeah SQLAlchemy is a bit tricky. As it is, I believe this would do a SELECT for each tag... I think we could make it just fine with [subqueryload](http://docs.sqlalchemy.org/en/latest/orm/loading.html#sqlalchemy.orm.subqueryload), like this

```python
[(tag.name, len(tag.posts)) for tag in Tag.query.options(subqueryload(Tag.posts)).all()]
```

*however* I was tinkering with it and a more direct query is quite a bit faster, and it drops the 0-count tags with the explicit join.

```python
from sqlalchemy import func

db.session.query(Tag.name, func.count('*')).join(posts_to_tags).group_by(Tag.id).all()
```