User avatars

This finally implements the missing pieces of #430

Some of the code had already been done in #606. Most of the rest is more or less copy&pasted from instance logos. Once I had refactored `lib.logo` this was easy to do.

I also tried to make the image upload dialog look a bit less broken in 22ee772.

It seems like the PIL backend we are using does not change the images aspect ratio even if `x` and `y` are both specified. So I included a css fix which will make all avatars square in 0050de3.