refactor logo

For user avatars (#641) we generalized `lib/logo`. The we used it again for category pages (#695). Now it looks like we might want to use it for pages and also #314 could make use of it. So I took some time to refactor the existing code.

The problem is that still a lot of code has to be duplicated for each new entity type:

-  a route
-  a controller
-  a helper function `logo_url`
-  some ui to set and delete the logo

This unifies/abstracts the controller and the helper function. Additionally, this adds a generic fallback logo.